Trait no_std_compat::ops::Not

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

§

type Output = <bool as Not>::Output

1.0.0 · source§

impl Not for &i8

§

type Output = <i8 as Not>::Output

1.0.0 · source§

impl Not for &i16

§

type Output = <i16 as Not>::Output

1.0.0 · source§

impl Not for &i32

§

type Output = <i32 as Not>::Output

1.0.0 · source§

impl Not for &i64

§

type Output = <i64 as Not>::Output

1.0.0 · source§

impl Not for &i128

§

type Output = <i128 as Not>::Output

1.0.0 · source§

impl Not for &isize

§

type Output = <isize as Not>::Output

1.0.0 · source§

impl Not for &u8

§

type Output = <u8 as Not>::Output

1.0.0 · source§

impl Not for &u16

§

type Output = <u16 as Not>::Output

1.0.0 · source§

impl Not for &u32

§

type Output = <u32 as Not>::Output

1.0.0 · source§

impl Not for &u64

§

type Output = <u64 as Not>::Output

1.0.0 · source§

impl Not for &u128

§

type Output = <u128 as Not>::Output

1.0.0 · source§

impl Not for &usize

§

type Output = <usize as Not>::Output

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>

§

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

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>

§

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

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>

1.0.0 · source§

impl Not for bool

§

type Output = bool

1.0.0 · source§

impl Not for i8

§

type Output = i8

1.0.0 · source§

impl Not for i16

§

type Output = i16

1.0.0 · source§

impl Not for i32

§

type Output = i32

1.0.0 · source§

impl Not for i64

§

type Output = i64

1.0.0 · source§

impl Not for i128

§

type Output = i128

1.0.0 · source§

impl Not for isize

1.60.0 · source§

impl Not for !

§

type Output = !

1.0.0 · source§

impl Not for u8

§

type Output = u8

1.0.0 · source§

impl Not for u16

§

type Output = u16

1.0.0 · source§

impl Not for u32

§

type Output = u32

1.0.0 · source§

impl Not for u64

§

type Output = u64

1.0.0 · source§

impl Not for u128

§

type Output = 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.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<T, const N: usize> Not for Mask<T, N>

§

type Output = Mask<T, N>

source§

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

§

type Output = Simd<i8, N>

source§

impl<const N: usize> Not for Simd<i16, N>

§

type Output = Simd<i16, N>

source§

impl<const N: usize> Not for Simd<i32, N>

§

type Output = Simd<i32, N>

source§

impl<const N: usize> Not for Simd<i64, N>

§

type Output = Simd<i64, N>

source§

impl<const N: usize> Not for Simd<isize, N>

§

type Output = Simd<isize, N>

source§

impl<const N: usize> Not for Simd<u8, N>

§

type Output = Simd<u8, N>

source§

impl<const N: usize> Not for Simd<u16, N>

§

type Output = Simd<u16, N>

source§

impl<const N: usize> Not for Simd<u32, N>

§

type Output = Simd<u32, N>

source§

impl<const N: usize> Not for Simd<u64, N>

§

type Output = Simd<u64, N>

source§

impl<const N: usize> Not for Simd<usize, N>

§

type Output = Simd<usize, N>

impl<'a, T, O> Not for &'a mut BitSlice<T, O>
where T: BitStore, O: BitOrder,

impl<A, O> Not for BitArray<A, O>
where A: BitViewSized, O: BitOrder,

impl<M, T, O> Not for BitRef<'_, M, T, O>
where M: Mutability, T: BitStore, O: BitOrder,

impl<R> Not for BitMask<R>
where R: BitRegister,

impl<T, O> Not for BitBox<T, O>
where T: BitStore, O: BitOrder,

impl<T, O> Not for BitVec<T, O>
where T: BitStore, O: BitOrder,

impl Not for Ieee32

impl Not for Ieee64

impl Not for Limb

impl<const LIMBS: usize> Not for Uint<LIMBS>

impl<const LIMBS: usize> Not for Wrapping<Uint<LIMBS>>

impl Not for &BigInt

impl Not for &Boolean

impl Not for &Number

impl Not for BigInt

impl Not for Boolean

impl Not for Number

impl Not for Endpoint

impl Not for Events

impl Not for NextHopFlags

impl Not for RouteFlags

impl Not for RuleFlags

impl Not for AtFlags

impl Not for FdFlag

impl Not for OFlag

impl Not for RenameFlags

impl Not for SealFlag

impl Not for MntFlags

impl Not for MsFlags

impl Not for CloneFlags

impl Not for SaFlags

impl Not for SfdFlags

impl Not for Mode

impl Not for SFlag

impl Not for FsFlags

impl Not for WaitPidFlag

impl Not for AccessFlags

impl Not for &BigInt

impl Not for BigInt

impl Not for U128

impl Not for U256

impl Not for U512

impl Not for CreateFlags

impl Not for ReadFlags

impl Not for WatchFlags

impl Not for Access

impl Not for AtFlags

impl Not for IFlags

impl Not for MemfdFlags

impl Not for Mode

impl Not for OFlags

impl Not for RenameFlags

impl Not for ResolveFlags

impl Not for SealFlags

impl Not for StatxFlags

impl Not for XattrFlags

impl Not for DupFlags

impl Not for FdFlags

impl Not for ControlModes

impl Not for InputModes

impl Not for LocalModes

impl Not for OutputModes

impl Not for Roles

impl Not for PacketFlag

impl Not for Capabilities

impl<T: Not<Output = T>, D: Get<T>> Not for TypeWithDefault<T, D>

impl Not for Phase

impl Not for Choice

impl Not for B0

impl Not for B1

impl Not for &JsValue

impl Not for JsValue

impl<O> Not for I128<O>

impl<O> Not for I16<O>

impl<O> Not for I32<O>

impl<O> Not for I64<O>

impl<O> Not for U128<O>

impl<O> Not for U16<O>

impl<O> Not for U32<O>

impl<O> Not for U64<O>