Trait Not

1.6.0 · 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 · Source§

impl Not for &bool

1.0.0 · Source§

impl Not for &i8

1.0.0 · Source§

impl Not for &i16

1.0.0 · Source§

impl Not for &i32

1.0.0 · Source§

impl Not for &i64

1.0.0 · Source§

impl Not for &i128

1.0.0 · Source§

impl Not for &isize

1.0.0 · Source§

impl Not for &u8

1.0.0 · Source§

impl Not for &u16

1.0.0 · Source§

impl Not for &u32

1.0.0 · Source§

impl Not for &u64

1.0.0 · Source§

impl Not for &u128

1.0.0 · Source§

impl Not for &usize

1.75.0 · Source§

impl Not for &Ipv4Addr

1.75.0 · Source§

impl Not for &Ipv6Addr

1.74.0 · Source§

impl Not for &Saturating<i8>

1.74.0 · Source§

impl Not for &Saturating<i16>

1.74.0 · Source§

impl Not for &Saturating<i32>

1.74.0 · Source§

impl Not for &Saturating<i64>

1.74.0 · Source§

impl Not for &Saturating<i128>

1.74.0 · Source§

impl Not for &Saturating<isize>

1.74.0 · Source§

impl Not for &Saturating<u8>

1.74.0 · Source§

impl Not for &Saturating<u16>

1.74.0 · Source§

impl Not for &Saturating<u32>

1.74.0 · Source§

impl Not for &Saturating<u64>

1.74.0 · Source§

impl Not for &Saturating<u128>

1.74.0 · Source§

impl Not for &Saturating<usize>

1.14.0 · Source§

impl Not for &Wrapping<i8>

1.14.0 · Source§

impl Not for &Wrapping<i16>

1.14.0 · Source§

impl Not for &Wrapping<i32>

1.14.0 · Source§

impl Not for &Wrapping<i64>

1.14.0 · Source§

impl Not for &Wrapping<i128>

1.14.0 · Source§

impl Not for &Wrapping<isize>

1.14.0 · Source§

impl Not for &Wrapping<u8>

1.14.0 · Source§

impl Not for &Wrapping<u16>

1.14.0 · Source§

impl Not for &Wrapping<u32>

1.14.0 · Source§

impl Not for &Wrapping<u64>

1.14.0 · Source§

impl Not for &Wrapping<u128>

1.14.0 · Source§

impl Not for &Wrapping<usize>

Source§

impl Not for &BigInt

1.0.0 · Source§

impl Not for bool

1.0.0 · Source§

impl Not for i8

1.0.0 · Source§

impl Not for i16

1.0.0 · Source§

impl Not for i32

1.0.0 · Source§

impl Not for i64

1.0.0 · Source§

impl Not for i128

1.0.0 · Source§

impl Not for isize

1.60.0 · Source§

impl Not for !

1.0.0 · Source§

impl Not for u8

1.0.0 · Source§

impl Not for u16

1.0.0 · Source§

impl Not for u32

1.0.0 · Source§

impl Not for u64

1.0.0 · Source§

impl Not for u128

1.0.0 · Source§

impl Not for usize

Source§

impl Not for DrawFlags

Source§

impl Not for DrawListFlags

Source§

impl Not for BVec2

Source§

impl Not for BVec3

Source§

impl Not for BVec3A

Source§

impl Not for BVec4

Source§

impl Not for BVec4A

Source§

impl Not for BackendFlags

Source§

impl Not for ButtonFlags

Source§

impl Not for ColorEditFlags

Source§

impl Not for ComboBoxFlags

Source§

impl Not for ConfigFlags

Source§

impl Not for DragDropFlags

Source§

impl Not for FontAtlasFlags

Source§

impl Not for I16Vec2

Source§

impl Not for I16Vec3

Source§

impl Not for I16Vec4

Source§

impl Not for I64Vec2

Source§

impl Not for I64Vec3

Source§

impl Not for I64Vec4

Source§

impl Not for IVec2

Source§

impl Not for IVec3

Source§

impl Not for IVec4

Source§

impl Not for InputTextCallback

Source§

impl Not for InputTextFlags

Source§

impl Not for InputTextMultilineCallback

Source§

impl Not for ItemHoveredFlags

Source§

impl Not for JoystickHats

Source§

impl Not for Modifiers

Source§

impl Not for SelectableFlags

Source§

impl Not for SliderFlags

Source§

impl Not for TabBarFlags

Source§

impl Not for TabItemFlags

Source§

impl Not for TreeNodeFlags

Source§

impl Not for U16Vec2

Source§

impl Not for U16Vec3

Source§

impl Not for U16Vec4

Source§

impl Not for U64Vec2

Source§

impl Not for U64Vec3

Source§

impl Not for U64Vec4

Source§

impl Not for UVec2

Source§

impl Not for UVec3

Source§

impl Not for UVec4

Source§

impl Not for WindowFlags

Source§

impl Not for WindowFocusedFlags

Source§

impl Not for WindowHoveredFlags

1.75.0 · Source§

impl Not for Ipv4Addr

1.75.0 · Source§

impl Not for Ipv6Addr

1.74.0 · Source§

impl Not for Saturating<i8>

1.74.0 · Source§

impl Not for Saturating<i16>

1.74.0 · Source§

impl Not for Saturating<i32>

1.74.0 · Source§

impl Not for Saturating<i64>

1.74.0 · Source§

impl Not for Saturating<i128>

1.74.0 · Source§

impl Not for Saturating<isize>

1.74.0 · Source§

impl Not for Saturating<u8>

1.74.0 · Source§

impl Not for Saturating<u16>

1.74.0 · Source§

impl Not for Saturating<u32>

1.74.0 · Source§

impl Not for Saturating<u64>

1.74.0 · Source§

impl Not for Saturating<u128>

1.74.0 · Source§

impl Not for Saturating<usize>

1.0.0 · Source§

impl Not for Wrapping<i8>

1.0.0 · Source§

impl Not for Wrapping<i16>

1.0.0 · Source§

impl Not for Wrapping<i32>

1.0.0 · Source§

impl Not for Wrapping<i64>

1.0.0 · Source§

impl Not for Wrapping<i128>

1.0.0 · Source§

impl Not for Wrapping<isize>

1.0.0 · Source§

impl Not for Wrapping<u8>

1.0.0 · Source§

impl Not for Wrapping<u16>

1.0.0 · Source§

impl Not for Wrapping<u32>

1.0.0 · Source§

impl Not for Wrapping<u64>

1.0.0 · Source§

impl Not for Wrapping<u128>

1.0.0 · Source§

impl Not for Wrapping<usize>

Source§

impl Not for BigInt

Source§

impl Not for Transformations

Source§

impl<O> Not for I16<O>

Source§

impl<O> Not for I32<O>

Source§

impl<O> Not for I64<O>

Source§

impl<O> Not for I128<O>

Source§

impl<O> Not for Isize<O>

Source§

impl<O> Not for U16<O>

Source§

impl<O> Not for U32<O>

Source§

impl<O> Not for U64<O>

Source§

impl<O> Not for U128<O>

Source§

impl<O> Not for Usize<O>

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>