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

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

Source§

impl Not for Access

§

impl Not for AddressTaggingFeatureFlags

§

type Output = AddressTaggingFeatureFlags

§

impl Not for AllocateMode

§

type Output = AllocateMode

§

impl Not for AtRestFlags

§

type Output = AtRestFlags

§

impl Not for BtiOptions

§

type Output = BtiOptions

Source§

impl Not for Capabilities

§

impl Not for ClockOpts

§

type Output = ClockOpts

§

impl Not for ConfigMutability

§

type Output = ConfigMutability

§

impl Not for ConfigMutability

§

type Output = ConfigMutability

§

impl Not for CpuFeatureFlags

§

type Output = CpuFeatureFlags

§

impl Not for DebugLogOpts

§

type Output = DebugLogOpts

§

impl Not for DynamicFlags

§

type Output = DynamicFlags

§

impl Not for ExceptionChannelOptions

§

type Output = ExceptionChannelOptions

Source§

impl Not for FdEvents

Source§

impl Not for FileMode

§

impl Not for FileSignal

§

type Output = FileSignal

Source§

impl Not for FileSystemFlags

§

impl Not for Flags

§

type Output = Flags

Source§

impl Not for InotifyMask

§

impl Not for IobAccess

§

type Output = IobAccess

Source§

impl Not for IptIpFlagsV4

Source§

impl Not for IptIpFlagsV6

Source§

impl Not for IptIpInverseFlags

1.75.0 (const: unstable) · Source§

impl Not for Ipv4Addr

1.75.0 (const: unstable) · Source§

impl Not for Ipv6Addr

§

impl Not for JobCriticalOptions

§

type Output = JobCriticalOptions

§

impl Not for MemoryStallKind

§

type Output = MemoryStallKind

§

impl Not for ModeType

§

type Output = ModeType

Source§

impl Not for MountFlags

Source§

impl Not for MountpointFlags

Source§

impl Not for NfIpHooks

Source§

impl Not for NfNatRangeFlags

§

impl Not for NodeAttributeFlags

§

type Output = NodeAttributeFlags

§

impl Not for NodeAttributesQuery

§

type Output = NodeAttributesQuery

§

impl Not for NodeProtocolKinds

§

type Output = NodeProtocolKinds

§

impl Not for OpenFlags

§

type Output = OpenFlags

Source§

impl Not for starnix_uapi::open_flags::OpenFlags

§

impl Not for Operations

§

type Output = Operations

§

impl Not for PagerOptions

§

type Output = PagerOptions

§

impl Not for PagerWritebackBeginOptions

§

type Output = PagerWritebackBeginOptions

Source§

impl Not for PersonalityFlags

§

impl Not for PortOptions

§

type Output = PortOptions

§

impl Not for ProcessInfoFlags

§

type Output = ProcessInfoFlags

§

impl Not for ProcessOptions

§

type Output = ProcessOptions

Source§

impl Not for PtraceAccessMode

§

impl Not for RaiseExceptionOptions

§

type Output = RaiseExceptionOptions

Source§

impl Not for ResolveFlags

§

impl Not for ResourceFlag

§

type Output = ResourceFlag

§

impl Not for ResourceKind

§

type Output = ResourceKind

§

impl Not for Rights

§

type Output = Rights

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 SealFlags

Source§

impl Not for SecureBits

Source§

impl Not for SigSet

§

impl Not for Signals

§

type Output = Signals

§

impl Not for SocketOpts

§

type Output = SocketOpts

§

impl Not for SocketReadOpts

§

type Output = SocketReadOpts

§

impl Not for SocketWriteOpts

§

type Output = SocketWriteOpts

§

impl Not for StreamOptions

§

type Output = StreamOptions

§

impl Not for StreamReadOptions

§

type Output = StreamReadOptions

§

impl Not for StreamWriteOptions

§

type Output = StreamWriteOptions

§

impl Not for TransferDataOptions

§

type Output = TransferDataOptions

§

impl Not for UnlinkFlags

§

type Output = UnlinkFlags

Source§

impl Not for UnmountFlags

§

impl Not for VirtualMemoryFeatureFlags

§

type Output = VirtualMemoryFeatureFlags

§

impl Not for VmarFlags

§

type Output = VmarFlags

§

impl Not for VmarFlagsExtended

§

type Output = VmarFlagsExtended

§

impl Not for VmoChildOptions

§

type Output = VmoChildOptions

§

impl Not for VmoFlags

§

type Output = VmoFlags

§

impl Not for VmoInfoFlags

§

type Output = VmoInfoFlags

§

impl Not for VmoOptions

§

type Output = VmoOptions

§

impl Not for WaitAsyncOpts

§

type Output = WaitAsyncOpts

§

impl Not for WatchMask

§

type Output = WatchMask

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 XtTcpInverseFlags

Source§

impl Not for XtUdpInverseFlags

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

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>