heh
Diffstat (limited to 'src/util.rs')
| -rw-r--r-- | src/util.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/util.rs b/src/util.rs index f9675fa..da668b9 100644 --- a/src/util.rs +++ b/src/util.rs @@ -21,7 +21,7 @@ use std::{ pub mod prelude { pub use super::{ - AndF, BoolTools, DigiCount, Dir, FilterBy, FilterBy3, GreekTools, GridFind, + AndF, BoolTools, DigiCount, Dir, FilterBy, FilterBy3, FirstMax, GreekTools, GridFind, IntoCombinations, IntoLines, IterͶ, MapWith, NumTupleIterTools, PRead, ParseIter, PartitionByKey, Position, Printable, Skip, Splib, SplitU8, Str, TakeLine, TupleIterTools2, TupleIterTools2R, TupleIterTools3, TupleUtils, TwoWayMapCollect, UnifiedTupleUtils, @@ -2306,3 +2306,19 @@ impl<T> PRead<T> for *const T { b } } + +pub trait FirstMax<T> { + fn fmax_by_left(self) -> T; +} + +impl<T: Ord + Default, U: Default, I: Iterator<Item = (T, U)>> FirstMax<(T, U)> for I { + fn fmax_by_left(self) -> (T, U) { + let mut best = (T::default(), U::default()); + for el in self { + if best.0 < el.0 { + best = el + } + } + best + } +} |