pub trait IterExt: Iterator + Sized { fn max_by_maybe_key<F, K>(self, key_fn: F) -> Option<Self::Item> where F: Fn(&Self::Item) -> Option<K>, K: Ord, { ... } }
fn max_by_maybe_key<F, K>(self, key_fn: F) -> Option<Self::Item> where F: Fn(&Self::Item) -> Option<K>, K: Ord,
Allows the user to provide a fallible key
impl<T> IterExt for T where T: Iterator + Sized,