Not

Trait Not 

1.6.0 (const: unstable) · Source
pub trait Not {
    type Output;

    // Required method
    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§

1.0.0 · Source

type Output

The resulting type after applying the ! operator.

Required Methods§

1.0.0 · Source

fn not(self) -> Self::Output

Performs the unary ! operation.

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

Implementors§

1.0.0 (const: unstable) · Source§

impl Not for &bool

1.0.0 (const: unstable) · Source§

impl Not for &i8

1.0.0 (const: unstable) · Source§

impl Not for &i16

1.0.0 (const: unstable) · Source§

impl Not for &i32

1.0.0 (const: unstable) · Source§

impl Not for &i64

1.0.0 (const: unstable) · Source§

impl Not for &i128

1.0.0 (const: unstable) · Source§

impl Not for &isize

1.0.0 (const: unstable) · Source§

impl Not for &u8

1.0.0 (const: unstable) · Source§

impl Not for &u16

1.0.0 (const: unstable) · Source§

impl Not for &u32

1.0.0 (const: unstable) · Source§

impl Not for &u64

1.0.0 (const: unstable) · Source§

impl Not for &u128

1.0.0 (const: unstable) · Source§

impl Not for &usize

1.0.0 (const: unstable) · Source§

impl Not for bool

1.0.0 (const: unstable) · Source§

impl Not for i8

1.0.0 (const: unstable) · Source§

impl Not for i16

1.0.0 (const: unstable) · Source§

impl Not for i32

1.0.0 (const: unstable) · Source§

impl Not for i64

1.0.0 (const: unstable) · Source§

impl Not for i128

1.0.0 (const: unstable) · Source§

impl Not for isize

1.0.0 (const: unstable) · Source§

impl Not for u8

1.0.0 (const: unstable) · Source§

impl Not for u16

1.0.0 (const: unstable) · Source§

impl Not for u32

1.0.0 (const: unstable) · Source§

impl Not for u64

1.0.0 (const: unstable) · Source§

impl Not for u128

1.0.0 (const: unstable) · Source§

impl Not for usize