Skip to main content

ComplementResult

Enum ComplementResult 

Source
pub enum ComplementResult<C> {
    Single(C),
    Split(C, C),
}
Expand description

Represents the result of a complement

Variants§

§

Single(C)

Complement was successful and resulted in a single element

§

Split(C, C)

Complement was successful and resulted in two elements

Implementations§

Source§

impl<C> ComplementResult<C>

Source

pub fn is_single(&self) -> bool

Whether the ComplementResult is of the Single variant

§Examples
assert!(ComplementResult::<u8>::Single(10).is_single());
assert!(!ComplementResult::<u8>::Split(10, 20).is_single());
Source

pub fn is_split(&self) -> bool

Whether the ComplementResult is of the Split variant

§Examples
assert!(ComplementResult::<u8>::Split(10, 20).is_split());
assert!(!ComplementResult::<u8>::Single(10).is_split());
Source

pub fn single(self) -> Option<C>

Returns the content of the Single variant

This operation consumes self and puts the content of the Single variant in an Option. If instead self is another variant, this method returns None.

§Examples
assert_eq!(ComplementResult::<u8>::Single(10).single(), Some(10));
assert_eq!(ComplementResult::<u8>::Split(10, 20).single(), None);
Source

pub fn split(self) -> Option<(C, C)>

Returns the content of the Split variant

This operation consumes self and puts the content of the Split variant in an Option. If instead self is another variant, this method returns None.

§Examples
assert_eq!(
    ComplementResult::<u8>::Split(10, 20).split(),
    Some((10, 20))
);
assert_eq!(ComplementResult::<u8>::Single(10).split(), None);
Source

pub fn map<F, T>(self, f: F) -> ComplementResult<T>
where F: FnMut(C) -> T,

Maps the contents of the variants using the given transformation closure

§Examples
assert_eq!(
    ComplementResult::<u8>::Single(10).map(|x| x * 2),
    ComplementResult::<u8>::Single(20),
);
assert_eq!(
    ComplementResult::<u8>::Split(10, 20).map(|x| x * 2),
    ComplementResult::<u8>::Split(20, 40),
);

Trait Implementations§

Source§

impl<C: Clone> Clone for ComplementResult<C>

Source§

fn clone(&self) -> ComplementResult<C>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<C: Copy> Copy for ComplementResult<C>

Source§

impl<C: Debug> Debug for ComplementResult<C>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<C: Eq> Eq for ComplementResult<C>

Source§

impl<C: Hash> Hash for ComplementResult<C>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<C: PartialEq> PartialEq for ComplementResult<C>

Source§

fn eq(&self, other: &ComplementResult<C>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<C: PartialEq> StructuralPartialEq for ComplementResult<C>

Auto Trait Implementations§

§

impl<C> Freeze for ComplementResult<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for ComplementResult<C>
where C: RefUnwindSafe,

§

impl<C> Send for ComplementResult<C>
where C: Send,

§

impl<C> Sync for ComplementResult<C>
where C: Sync,

§

impl<C> Unpin for ComplementResult<C>
where C: Unpin,

§

impl<C> UnsafeUnpin for ComplementResult<C>
where C: UnsafeUnpin,

§

impl<C> UnwindSafe for ComplementResult<C>
where C: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.