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>
impl<C> ComplementResult<C>
Sourcepub fn is_single(&self) -> bool
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());Sourcepub fn is_split(&self) -> bool
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());Sourcepub fn single(self) -> Option<C>
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);Sourcepub fn split(self) -> Option<(C, C)>
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);Sourcepub fn map<F, T>(self, f: F) -> ComplementResult<T>where
F: FnMut(C) -> T,
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>
impl<C: Clone> Clone for ComplementResult<C>
Source§fn clone(&self) -> ComplementResult<C>
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<C: Copy> Copy for ComplementResult<C>
Source§impl<C: Debug> Debug for ComplementResult<C>
impl<C: Debug> Debug for ComplementResult<C>
impl<C: Eq> Eq for ComplementResult<C>
Source§impl<C: Hash> Hash for ComplementResult<C>
impl<C: Hash> Hash for ComplementResult<C>
Source§impl<C: PartialEq> PartialEq for ComplementResult<C>
impl<C: PartialEq> PartialEq for ComplementResult<C>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more