Trait snarkvm_circuit::Not

1.0.0 · source · []
pub trait Not {
    type Output;

    fn not(self) -> Self::Output;
}
Expand description

The unary logical negation operator !.

Examples

An implementation of Not for Answer, which enables the use of ! to invert its value.

use std::ops::Not;

#[derive(Debug, PartialEq)]
enum Answer {
    Yes,
    No,
}

impl Not for Answer {
    type Output = Self;

    fn not(self) -> Self::Output {
        match self {
            Answer::Yes => Answer::No,
            Answer::No => Answer::Yes
        }
    }
}

assert_eq!(!Answer::Yes, Answer::No);
assert_eq!(!Answer::No, Answer::Yes);

Required Associated Types

The resulting type after applying the ! operator.

Required Methods

Performs the unary ! operation.

Examples
assert_eq!(!true, false);
assert_eq!(!false, true);
assert_eq!(!1u8, 254);
assert_eq!(!0u8, 255);

Trait Implementations

Returns the number of constants, public inputs, private inputs, and constraints.

Returns the number of constants, public inputs, private inputs, and constraints.

Returns the mode of the output.

Returns the mode of the output.

Implementors

Not of 0 (!0 = 1)

Not of 1 (!1 = 0)