Trait IterLastMinExt

Source
pub trait IterLastMinExt: Iterator + Sized {
    // Provided methods
    fn last_min(self) -> Option<Self::Item>
       where Self::Item: Ord { ... }
    fn last_min_by<F>(self, f: F) -> Option<Self::Item>
       where F: FnMut(&Self::Item, &Self::Item) -> Ordering { ... }
    fn last_min_by_key<B, F>(self, f: F) -> Option<Self::Item>
       where F: FnMut(&Self::Item) -> B,
             B: Ord { ... }
}
Expand description

Similar the IterFirstMaxExt

use iter_first_max::IterLastMinExt as _;

let arr = [(1, 0), (1, 1), (1, 2), (2, 3), (2, 4)];
let first = arr.iter().min_by_key(|n| n.0);
let last  = arr.iter().last_min_by_key(|n| n.0);

assert_eq!(first, Some(&(1, 0)));
assert_eq!(last,  Some(&(1, 2)));

Provided Methods§

Source

fn last_min(self) -> Option<Self::Item>
where Self::Item: Ord,

Get min element, if equal, return the last equal element

Source

fn last_min_by<F>(self, f: F) -> Option<Self::Item>
where F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Get min element, if equal, return the last equal element

Source

fn last_min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where F: FnMut(&Self::Item) -> B, B: Ord,

Get min element, if key equal, return the last key equal element

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§