Not

Trait Not 

1.0.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.75.0 (const: unstable) · Source§

impl Not for &Ipv4Addr

1.75.0 (const: unstable) · Source§

impl Not for &Ipv6Addr

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Not for &Saturating<usize>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Not for &Wrapping<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.60.0 (const: unstable) · Source§

impl Not for !

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.75.0 (const: unstable) · Source§

impl Not for Ipv4Addr

1.75.0 (const: unstable) · Source§

impl Not for Ipv6Addr

1.74.0 (const: unstable) · Source§

impl Not for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Not for Saturating<usize>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<i8>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<i16>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<i32>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<i64>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<i128>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<isize>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<u8>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<u16>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<u32>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<u64>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<u128>

1.0.0 (const: unstable) · Source§

impl Not for Wrapping<usize>

Source§

impl Not for U24

Source§

impl Not for U40

Source§

impl Not for U48

Source§

impl Not for U56

Source§

impl Not for U72

Source§

impl Not for U80

Source§

impl Not for U88

Source§

impl Not for U96

Source§

impl Not for U104

Source§

impl Not for U112

Source§

impl Not for U120

Source§

impl Not for U136

Source§

impl Not for U144

Source§

impl Not for U152

Source§

impl Not for U160

Source§

impl Not for U168

Source§

impl Not for U176

Source§

impl Not for U184

Source§

impl Not for U192

Source§

impl Not for U200

Source§

impl Not for U208

Source§

impl Not for U216

Source§

impl Not for U224

Source§

impl Not for U232

Source§

impl Not for U240

Source§

impl Not for U248

Source§

impl Not for U256

Source§

impl<T, const N: usize> Not for Mask<T, N>

Source§

type Output = Mask<T, N>

Source§

impl<const N: usize> Not for Simd<i8, N>

Source§

impl<const N: usize> Not for Simd<i16, N>

Source§

impl<const N: usize> Not for Simd<i32, N>

Source§

impl<const N: usize> Not for Simd<i64, N>

Source§

impl<const N: usize> Not for Simd<isize, N>

Source§

impl<const N: usize> Not for Simd<u8, N>

Source§

impl<const N: usize> Not for Simd<u16, N>

Source§

impl<const N: usize> Not for Simd<u32, N>

Source§

impl<const N: usize> Not for Simd<u64, N>

Source§

impl<const N: usize> Not for Simd<usize, N>