Skip to main content

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 (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.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.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.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 &BigInt

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

Source§

impl Not for B0

Not of 0 (!0 = 1)

Source§

impl Not for B1

Not of 1 (!1 = 0)

Source§

impl Not for otter_nodejs_tests::nix::fcntl::AtFlags

Source§

impl Not for otter_nodejs_tests::nix::fcntl::FallocateFlags

Source§

impl Not for otter_nodejs_tests::nix::fcntl::FdFlag

Source§

impl Not for OFlag

Source§

impl Not for otter_nodejs_tests::nix::fcntl::RenameFlags

Source§

impl Not for SealFlag

Source§

impl Not for SpliceFFlags

Source§

impl Not for DeleteModuleFlags

Source§

impl Not for ModuleInitFlags

Source§

impl Not for MntFlags

Source§

impl Not for otter_nodejs_tests::nix::mount::MsFlags

Source§

impl Not for otter_nodejs_tests::nix::mqueue::FdFlag

Source§

impl Not for MQ_OFlag

Source§

impl Not for InterfaceFlags

Source§

impl Not for PollFlags

Source§

impl Not for CloneFlags

Source§

impl Not for EpollCreateFlags

Source§

impl Not for EpollFlags

Source§

impl Not for EfdFlags

Source§

impl Not for AddWatchFlags

Source§

impl Not for InitFlags

Source§

impl Not for MemFdCreateFlag

Source§

impl Not for MRemapFlags

Source§

impl Not for MapFlags

Source§

impl Not for MlockAllFlags

Source§

impl Not for otter_nodejs_tests::nix::sys::mman::MsFlags

Source§

impl Not for ProtFlags

Source§

impl Not for Persona

Source§

impl Not for Options

Source§

impl Not for QuotaValidFlags

Source§

impl Not for SaFlags

Source§

impl Not for SfdFlags

Source§

impl Not for MsgFlags

Source§

impl Not for SockFlag

Source§

impl Not for TimestampingFlag

Source§

impl Not for otter_nodejs_tests::nix::sys::stat::Mode

Source§

impl Not for SFlag

Source§

impl Not for FsFlags

Source§

impl Not for ControlFlags

Source§

impl Not for InputFlags

Source§

impl Not for LocalFlags

Source§

impl Not for OutputFlags

Source§

impl Not for TimerFlags

Source§

impl Not for TimerSetTimeFlags

Source§

impl Not for WaitPidFlag

Source§

impl Not for AccessFlags

1.75.0 (const: unstable) · Source§

impl Not for Ipv4Addr

1.75.0 (const: unstable) · Source§

impl Not for Ipv6Addr

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.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 FileType

Source§

impl Not for EventMask

Source§

impl Not for WatchMask

Source§

impl Not for Op

Source§

impl Not for BigInt

Source§

impl Not for CipherCtxFlags

Source§

impl Not for CMSOptions

Source§

impl Not for OcspFlag

Source§

impl Not for Pkcs7Flags

Source§

impl Not for ExtensionContext

Source§

impl Not for ShutdownState

Source§

impl Not for SslMode

Source§

impl Not for SslOptions

Source§

impl Not for SslSessionCacheMode

Source§

impl Not for SslVerifyMode

Source§

impl Not for X509CheckFlags

Source§

impl Not for X509VerifyFlags

Source§

impl Not for AsciiSet

Source§

impl Not for Transformations

Source§

impl Not for CreateFlags

Source§

impl Not for ReadFlags

Source§

impl Not for WatchFlags

Source§

impl Not for Access

Source§

impl Not for rustix::backend::fs::types::AtFlags

Source§

impl Not for rustix::backend::fs::types::FallocateFlags

Source§

impl Not for MemfdFlags

Source§

impl Not for rustix::backend::fs::types::Mode

Source§

impl Not for OFlags

Source§

impl Not for rustix::backend::fs::types::RenameFlags

Source§

impl Not for ResolveFlags

Source§

impl Not for SealFlags

Source§

impl Not for StatVfsMountFlags

Source§

impl Not for DupFlags

Source§

impl Not for FdFlags

Source§

impl Not for ReadWriteFlags

Source§

impl Not for IFlags

Source§

impl Not for StatxAttributes

Source§

impl Not for StatxFlags

Source§

impl Not for XattrFlags

Source§

impl Not for Choice

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>
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>