Enum std::iter::MinMaxResult
[−]
[src]
pub enum MinMaxResult<T> {
NoElements,
OneElement(T),
MinMax(T, T),
}: unclear whether such a fine-grained result is widely useful
MinMaxResult`MinMaxResultis an enum returned by` is an enum returned by min_max`min_max. See`. See Iterator::min_max`Iterator::min_max` for
more detail.
Variants
NoElements | Unstable : unclear whether such a fine-grained result is widely useful Empty iterator |
OneElement | Unstable : unclear whether such a fine-grained result is widely useful Iterator with one element, so the minimum and maximum are the same |
MinMax | Unstable : unclear whether such a fine-grained result is widely useful More than one element in the iterator, the first element is not larger than the second |
Methods
impl<T> MinMaxResult<T> where T: Clone
fn into_option(self) -> Option<(T, T)>
: type is unstable
into_option`into_optioncreates an` creates an Option`Optionof type` of type (T,T)`(T,T). The returned`. The returned Option`Optionhas variant`
has variant None`Noneif and only if the` if and only if the MinMaxResult`MinMaxResulthas variant` has variant
NoElements`NoElements. Otherwise variant`. Otherwise variant Some(x,y)`Some(x,y)is returned where` is returned where x <= y`x <= y. If`.
If MinMaxResult`MinMaxResulthas variant` has variant OneElement(x)`OneElement(x), performing this operation will make one clone of`, performing this operation
will make one clone of x`x`.
Examples
#![feature(core)] fn main() { use std::iter::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))); }use std::iter::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)));