Enum itertools::MinMaxResult
source · pub enum MinMaxResult<T> {
NoElements,
OneElement(T),
MinMax(T, T),
}
Expand description
MinMaxResult
is an enum returned by minmax
.
See .minmax()
for more detail.
Variants§
NoElements
Empty iterator
OneElement(T)
Iterator with one element, so the minimum and maximum are the same
MinMax(T, T)
More than one element in the iterator, the first element is not larger than the second
Implementations§
source§impl<T: Clone> MinMaxResult<T>
impl<T: Clone> MinMaxResult<T>
sourcepub fn into_option(self) -> Option<(T, T)>
pub fn into_option(self) -> Option<(T, T)>
into_option
creates an Option
of type (T, T)
. The returned Option
has variant None
if and only if the MinMaxResult
has variant
NoElements
. Otherwise Some((x, y))
is returned where x <= y
.
If the MinMaxResult
has variant OneElement(x)
, performing this
operation will make one clone of x
.
§Examples
use itertools::MinMaxResult::{self, NoElements, OneElement, MinMax};
let r: MinMaxResult<i32> = NoElements;
assert_eq!(r.into_option(), None);
let r = OneElement(1);
assert_eq!(r.into_option(), Some((1, 1)));
let r = MinMax(1, 2);
assert_eq!(r.into_option(), Some((1, 2)));
Trait Implementations§
source§impl<T: Clone> Clone for MinMaxResult<T>
impl<T: Clone> Clone for MinMaxResult<T>
source§fn clone(&self) -> MinMaxResult<T>
fn clone(&self) -> MinMaxResult<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> Debug for MinMaxResult<T>
impl<T: Debug> Debug for MinMaxResult<T>
source§impl<T: PartialEq> PartialEq for MinMaxResult<T>
impl<T: PartialEq> PartialEq for MinMaxResult<T>
impl<T: Copy> Copy for MinMaxResult<T>
impl<T> StructuralPartialEq for MinMaxResult<T>
Auto Trait Implementations§
impl<T> Freeze for MinMaxResult<T>where
T: Freeze,
impl<T> RefUnwindSafe for MinMaxResult<T>where
T: RefUnwindSafe,
impl<T> Send for MinMaxResult<T>where
T: Send,
impl<T> Sync for MinMaxResult<T>where
T: Sync,
impl<T> Unpin for MinMaxResult<T>where
T: Unpin,
impl<T> UnwindSafe for MinMaxResult<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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more