Trait nom::lib::std::ops::Not1.0.0[][src]

#[lang = "not"]
pub trait Not {
    type Output;
    #[must_use]
    pub fn not(self) -> Self::Output;
}
[]

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

Associated Types

type Output[src][]

The resulting type after applying the ! operator.

Required methods

#[must_use]
pub fn not(self) -> Self::Output
[src][]

Performs the unary ! operation.

Examples

assert_eq!(!true, false);
assert_eq!(!false, true);
assert_eq!(!1u8, 254);
assert_eq!(!0u8, 255);

Implementations on Foreign Types

impl Not for Wrapping<i64>[src][]

type Output = Wrapping<i64>

impl<'_> Not for &'_ Wrapping<u16>[src][]

type Output = <Wrapping<u16> as Not>::Output

impl Not for Wrapping<i8>[src][]

type Output = Wrapping<i8>

impl<'_> Not for &'_ Wrapping<i64>[src][]

type Output = <Wrapping<i64> as Not>::Output

impl<'_> Not for &'_ Wrapping<i32>[src][]

type Output = <Wrapping<i32> as Not>::Output

impl<'_> Not for &'_ Wrapping<u32>[src][]

type Output = <Wrapping<u32> as Not>::Output

impl<'_> Not for &'_ Wrapping<isize>[src][]

type Output = <Wrapping<isize> as Not>::Output

impl Not for Wrapping<u32>[src][]

type Output = Wrapping<u32>

impl<'_> Not for &'_ Wrapping<u64>[src][]

type Output = <Wrapping<u64> as Not>::Output

impl<'_> Not for &'_ Wrapping<i8>[src][]

type Output = <Wrapping<i8> as Not>::Output

impl Not for Wrapping<isize>[src][]

type Output = Wrapping<isize>

impl<'_> Not for &'_ Wrapping<i128>[src][]

type Output = <Wrapping<i128> as Not>::Output

impl Not for Wrapping<u128>[src][]

type Output = Wrapping<u128>

impl Not for Wrapping<u8>[src][]

type Output = Wrapping<u8>

impl<'_> Not for &'_ Wrapping<u128>[src][]

type Output = <Wrapping<u128> as Not>::Output

impl<'_> Not for &'_ Wrapping<usize>[src][]

type Output = <Wrapping<usize> as Not>::Output

impl Not for Wrapping<i32>[src][]

type Output = Wrapping<i32>

impl<'_> Not for &'_ Wrapping<u8>[src][]

type Output = <Wrapping<u8> as Not>::Output

impl Not for Wrapping<i128>[src][]

type Output = Wrapping<i128>

impl Not for Wrapping<i16>[src][]

type Output = Wrapping<i16>

impl Not for Wrapping<usize>[src][]

type Output = Wrapping<usize>

impl<'_> Not for &'_ Wrapping<i16>[src][]

type Output = <Wrapping<i16> as Not>::Output

impl Not for Wrapping<u16>[src][]

type Output = Wrapping<u16>

impl Not for Wrapping<u64>[src][]

type Output = Wrapping<u64>

Implementors

impl Not for bool[src][+]

type Output = bool

impl Not for i8[src][+]

impl Not for i16[src][+]

impl Not for i32[src][+]

impl Not for i64[src][+]

impl Not for i128[src][+]

type Output = i128

impl Not for isize[src][+]

type Output = isize

impl Not for u8[src][+]

impl Not for u16[src][+]

impl Not for u32[src][+]

impl Not for u64[src][+]

impl Not for u128[src][+]

type Output = u128

impl Not for usize[src][+]

type Output = usize

impl<'_> Not for &'_ bool[src][+]

type Output = <bool as Not>::Output

impl<'_> Not for &'_ i8[src][+]

type Output = <i8 as Not>::Output

impl<'_> Not for &'_ i16[src][+]

type Output = <i16 as Not>::Output

impl<'_> Not for &'_ i32[src][+]

type Output = <i32 as Not>::Output

impl<'_> Not for &'_ i64[src][+]

type Output = <i64 as Not>::Output

impl<'_> Not for &'_ i128[src][+]

type Output = <i128 as Not>::Output

impl<'_> Not for &'_ isize[src][+]

type Output = <isize as Not>::Output

impl<'_> Not for &'_ u8[src][+]

type Output = <u8 as Not>::Output

impl<'_> Not for &'_ u16[src][+]

type Output = <u16 as Not>::Output

impl<'_> Not for &'_ u32[src][+]

type Output = <u32 as Not>::Output

impl<'_> Not for &'_ u64[src][+]

type Output = <u64 as Not>::Output

impl<'_> Not for &'_ u128[src][+]

type Output = <u128 as Not>::Output

impl<'_> Not for &'_ usize[src][+]

type Output = <usize as Not>::Output

impl Not for Sides

impl Not for ColorMask

impl Not for Mirror

impl Not for Access

impl Not for Bind

impl Not for Usage

impl Not for DepthStencilFlags

impl Not for ModifierKey

impl Not for AtFlags

impl Not for OFlag

impl Not for SealFlag

impl Not for FdFlag

impl Not for SpliceFFlags

impl Not for FallocateFlags

impl Not for ModuleInitFlags

impl Not for DeleteModuleFlags

impl Not for MsFlags

impl Not for MntFlags

impl Not for MQ_OFlag

impl Not for FdFlag

impl Not for InterfaceFlags

impl Not for PollFlags

impl Not for CloneFlags

impl Not for EpollFlags

impl Not for EpollCreateFlags

impl Not for EfdFlags

impl Not for MemFdCreateFlag

impl Not for ProtFlags

impl Not for MapFlags

impl Not for MRemapFlags

impl Not for MsFlags

impl Not for MlockAllFlags

impl Not for Persona

impl Not for Options

impl Not for QuotaValidFlags

impl Not for SaFlags

impl Not for SfdFlags

impl Not for SockFlag

impl Not for MsgFlags

impl Not for SFlag

impl Not for Mode

impl Not for FsFlags

impl Not for InputFlags

impl Not for OutputFlags

impl Not for ControlFlags

impl Not for LocalFlags

impl Not for WaitPidFlag

impl Not for AddWatchFlags

impl Not for InitFlags

impl Not for TimerFlags

impl Not for TimerSetTimeFlags

impl Not for AccessFlags

impl Not for Transformations

impl Not for DndAction

impl Not for Resize

impl Not for Transient

impl Not for Capability

impl Not for Mode

impl Not for ContentHint

impl Not for Anchor

impl Not for Gravity

impl Not for ConstraintAdjustment

impl Not for Anchor

impl Not for Flags

impl Not for Kind

impl Not for ConstraintAdjustment

impl Not for ModifiersState