Trait ord_subset::OrdSubsetIterExt [−][src]
pub trait OrdSubsetIterExt: Iterator { fn ord_subset_max(self) -> Option<Self::Item>
where
Self: Sized,
Self::Item: OrdSubset, { ... } fn ord_subset_min(self) -> Option<Self::Item>
where
Self: Sized,
Self::Item: OrdSubset, { ... } fn ord_subset_min_by_key<F, B>(self, f: F) -> Option<Self::Item>
where
F: FnMut(&Self::Item) -> B,
B: OrdSubset,
Self: Sized, { ... } fn ord_subset_max_by_key<F, B>(self, f: F) -> Option<Self::Item>
where
F: FnMut(&Self::Item) -> B,
B: OrdSubset,
Self: Sized, { ... } }
Provided Methods
fn ord_subset_max(self) -> Option<Self::Item> where
Self: Sized,
Self::Item: OrdSubset,
Self: Sized,
Self::Item: OrdSubset,
Consumes the entire iterator to return the maximum element.
Values outside the ordered subset as given by .is_outside_order()
are ignored.
Returns the last element if the comparison determines multiple elements to be equally maximum.
Example
use ord_subset::OrdSubsetIterExt; let vec = vec![2.0, 3.0, 5.0, std::f64::NAN]; let max = vec.iter().ord_subset_max().unwrap(); assert_eq!(&5.0, max);
fn ord_subset_min(self) -> Option<Self::Item> where
Self: Sized,
Self::Item: OrdSubset,
Self: Sized,
Self::Item: OrdSubset,
Consumes the entire iterator to return the minimum element.
Values outside the ordered subset as given by .is_outside_order()
are ignored.
Returns the first element if the comparison determines multiple elements to be equally minimum.
Example
use ord_subset::OrdSubsetIterExt; let vec = vec![2.0, 3.0, 5.0, std::f64::NAN]; let min = vec.iter().ord_subset_min().unwrap(); assert_eq!(&2.0, min);
fn ord_subset_min_by_key<F, B>(self, f: F) -> Option<Self::Item> where
F: FnMut(&Self::Item) -> B,
B: OrdSubset,
Self: Sized,
F: FnMut(&Self::Item) -> B,
B: OrdSubset,
Self: Sized,
Returns the element that gives the minimum value from the specified function.
Values outside the ordered subset as given by .is_outside_order()
on the mapped value are ignored.
Returns the first element if the comparison determines multiple elements to be equally minimum.
Example
extern crate ord_subset; use ord_subset::OrdSubsetIterExt; fn main() { let vec = vec![2.0, 3.0, 5.0, std::f64::NAN]; let min_by = vec.iter().ord_subset_min_by_key(|num| num.recip()).unwrap(); assert_eq!(&5.0, min_by); }
fn ord_subset_max_by_key<F, B>(self, f: F) -> Option<Self::Item> where
F: FnMut(&Self::Item) -> B,
B: OrdSubset,
Self: Sized,
F: FnMut(&Self::Item) -> B,
B: OrdSubset,
Self: Sized,
Returns the element that gives the maximum value from the specified function.
Values outside the ordered subset as given by .is_outside_order()
on the mapped value are ignored.
Returns the last element if the comparison determines multiple elements to be equally maximum.