Skip to main content

Not

Trait Not 

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

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

core The unary logical negation operator !.


📍code/ops re-exported from core::ops



📜
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 (const: unstable) · Source

type Output

The resulting type after applying the ! operator.

Required Methods§

1.0.0 (const: unstable) · 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);

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

1.60.0 (const: unstable) · Source§

impl Not for !

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

Source§

impl Not for &f32x4

Source§

impl Not for &f32x8

Source§

impl Not for &f32x16

Source§

impl Not for &f64x2

Source§

impl Not for &f64x4

Source§

impl Not for &f64x8

1.0.0 (const: unstable) · Source§

impl Not for &i8

Source§

impl Not for &i8x16

Source§

impl Not for &i8x32

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

Source§

impl Not for &i16x8

Source§

impl Not for &i16x16

Source§

impl Not for &i16x32

Source§

impl Not for &i32x4

Source§

impl Not for &i32x8

Source§

impl Not for &i32x16

Source§

impl Not for &i64x2

Source§

impl Not for &i64x4

Source§

impl Not for &i64x8

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

Source§

impl Not for &u8x16

Source§

impl Not for &u8x32

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

Source§

impl Not for &u16x8

Source§

impl Not for &u16x16

Source§

impl Not for &u16x32

Source§

impl Not for &u32x4

Source§

impl Not for &u32x8

Source§

impl Not for &u32x16

Source§

impl Not for &u64x2

Source§

impl Not for &u64x4

Source§

impl Not for &u64x8

1.0.0 (const: unstable) · Source§

impl Not for &u128

1.0.0 (const: unstable) · Source§

impl Not for &usize

Source§

impl Not for AppControlSet

Source§

impl Not for AsciiSet

Source§

impl Not for EnumSetExample

Available on doc or test only.
Source§

impl Not for EventButtons

Available on crate feature event only.
Source§

impl Not for EventTagSet

Available on crate feature event only.
1.75.0 (const: unstable) · Source§

impl Not for Ipv4Addr

1.75.0 (const: unstable) · Source§

impl Not for Ipv6Addr

Source§

impl Not for KeyMods

Available on crate feature event only.
Source§

impl Not for LinuxSigactionFlags

Available on crate feature linux only.
Source§

impl Not for LinuxSignalSet

Available on crate feature linux only.
Source§

impl Not for LinuxTermiosControlFlags

Available on crate feature linux only.
Source§

impl Not for LinuxTermiosInputFlags

Available on crate feature linux only.
Source§

impl Not for LinuxTermiosLocalFlags

Available on crate feature linux only.
Source§

impl Not for LinuxTermiosOutputFlags

Available on crate feature linux only.
Source§

impl Not for RandQualities

Source§

impl Not for RunCapInput

Source§

impl Not for RunCapSystem

Source§

impl Not for RunCapText

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>

Source§

impl Not for TermMode

Available on crate feature term only.
Source§

impl Not for TermStyle

Available on crate feature term only.
Source§

impl Not for TermStyleExt

Available on crate feature term only.
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>

1.0.0 (const: unstable) · Source§

impl Not for bool

Source§

impl Not for f32x4

Source§

impl Not for f32x8

Source§

impl Not for f32x16

Source§

impl Not for f64x2

Source§

impl Not for f64x4

Source§

impl Not for f64x8

1.0.0 (const: unstable) · Source§

impl Not for i8

Source§

impl Not for i8x16

Source§

impl Not for i8x32

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

Source§

impl Not for i16x8

Source§

impl Not for i16x16

Source§

impl Not for i16x32

Source§

impl Not for i32x4

Source§

impl Not for i32x8

Source§

impl Not for i32x16

Source§

impl Not for i64x2

Source§

impl Not for i64x4

Source§

impl Not for i64x8

1.0.0 (const: unstable) · Source§

impl Not for i128

1.0.0 (const: unstable) · Source§

impl Not for isize

Source§

impl Not for m128

Source§

impl Not for m256

Source§

impl Not for m128d

Source§

impl Not for m128i

Source§

impl Not for m256d

Source§

impl Not for m256i

1.0.0 (const: unstable) · Source§

impl Not for u8

Source§

impl Not for u8x16

Source§

impl Not for u8x32

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

Source§

impl Not for u16x8

Source§

impl Not for u16x16

Source§

impl Not for u16x32

Source§

impl Not for u32x4

Source§

impl Not for u32x8

Source§

impl Not for u32x16

Source§

impl Not for u64x2

Source§

impl Not for u64x4

Source§

impl Not for u64x8

1.0.0 (const: unstable) · Source§

impl Not for u128

1.0.0 (const: unstable) · Source§

impl Not for usize

Source§

impl<T, const CAP: usize, S: Storage> Not for Array<T, CAP, S>
where S::Stored<[T; CAP]>: Clone, T: Not<Output = T> + Copy,

Source§

type Output = Array<T, CAP, S>

Source§

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

Source§

type Output = Mask<T, N>

Source§

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

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>
where u8: SimdElement,

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>