Enum crokey::OneToThree
source · pub enum OneToThree<T> {
One(T),
Two(T, T),
Three(T, T, T),
}
Expand description
An ordered set of 1, 2 or 3 elements, allowing pattern matching.
Implements Copy, Clone, PartialEq, Eq, Debug, etc. if the element type does.
Variants§
Implementations§
source§impl<T> OneToThree<T>
impl<T> OneToThree<T>
pub fn one(a: T) -> OneToThree<T>
pub fn two(a: T, b: T) -> OneToThree<T>
pub fn three(a: T, b: T, c: T) -> OneToThree<T>
pub fn len(&self) -> usize
pub fn iter(&self) -> OneToThreeIter<'_, T>
pub fn first(&self) -> &T
pub fn first_mut(&mut self) -> &mut T
pub fn get(&self, i: usize) -> Option<&T>
pub fn get_mut(&mut self, i: usize) -> Option<&mut T>
pub fn to_vec(self) -> Vec<T>
pub fn to_ref_vec(&self) -> Vec<&T>
pub fn sorted(self) -> OneToThree<T>where
T: PartialOrd,
pub fn map<B, F>(self, f: F) -> OneToThree<B>where
F: Fn(T) -> B,
pub fn try_map<B, E, F>(self, f: F) -> Result<OneToThree<B>, E>
Trait Implementations§
source§impl<T> Clone for OneToThree<T>
impl<T> Clone for OneToThree<T>
source§fn clone(&self) -> OneToThree<T>
fn clone(&self) -> OneToThree<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<T> Debug for OneToThree<T>where
T: Debug,
impl<T> Debug for OneToThree<T>where
T: Debug,
source§impl<T> From<(T, T)> for OneToThree<T>
impl<T> From<(T, T)> for OneToThree<T>
source§fn from(t: (T, T)) -> OneToThree<T>
fn from(t: (T, T)) -> OneToThree<T>
Converts to this type from the input type.
source§impl<T> From<(T, T, T)> for OneToThree<T>
impl<T> From<(T, T, T)> for OneToThree<T>
source§fn from(t: (T, T, T)) -> OneToThree<T>
fn from(t: (T, T, T)) -> OneToThree<T>
Converts to this type from the input type.
source§impl<T> From<T> for OneToThree<T>
impl<T> From<T> for OneToThree<T>
source§fn from(a: T) -> OneToThree<T>
fn from(a: T) -> OneToThree<T>
Converts to this type from the input type.
source§impl<T> Hash for OneToThree<T>where
T: Hash,
impl<T> Hash for OneToThree<T>where
T: Hash,
source§impl<'a, T> IntoIterator for &'a OneToThree<T>
impl<'a, T> IntoIterator for &'a OneToThree<T>
source§impl<T> PartialEq for OneToThree<T>where
T: PartialEq,
impl<T> PartialEq for OneToThree<T>where
T: PartialEq,
source§fn eq(&self, other: &OneToThree<T>) -> bool
fn eq(&self, other: &OneToThree<T>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<T> TryFrom<Vec<T>> for OneToThree<T>
impl<T> TryFrom<Vec<T>> for OneToThree<T>
impl<T> Copy for OneToThree<T>where
T: Copy,
impl<T> Eq for OneToThree<T>where
T: Eq,
Auto Trait Implementations§
impl<T> Freeze for OneToThree<T>where
T: Freeze,
impl<T> RefUnwindSafe for OneToThree<T>where
T: RefUnwindSafe,
impl<T> Send for OneToThree<T>where
T: Send,
impl<T> Sync for OneToThree<T>where
T: Sync,
impl<T> Unpin for OneToThree<T>where
T: Unpin,
impl<T> UnwindSafe for OneToThree<T>where
T: 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