1.0.0[][src]Trait core::ops::Not

#[lang = "not"]
pub trait Not { type Output;
#[must_use]
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 = Answer;

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

Associated Types

type Output[]

The resulting type after applying the ! operator.

Required methods

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

Performs the unary ! operation.

Implementors

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

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

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

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

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

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

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

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

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

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

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

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

impl Not for bool[src][]

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

impl Not for isize[src][]

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

impl Not for usize[src][]

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

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

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

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

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

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

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

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

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

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

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

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

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

type Output = <bool as Not>::Output

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 as Not>::Output

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

type Output = <isize as Not>::Output

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 as Not>::Output

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

type Output = <usize as Not>::Output