Skip to main content

IteratorExt

Trait IteratorExt 

Source
pub trait IteratorExt: Iterator {
    // Provided methods
    fn is_strict_total_order(self) -> bool
       where Self: Sized,
             Self::Item: PartialOrd { ... }
    fn is_strict_total_order_by_key<F, K>(self, f: F) -> bool
       where Self: Sized,
             F: FnMut(Self::Item) -> K,
             K: PartialOrd { ... }
    fn min_max(self) -> Option<(Self::Item, Self::Item)>
       where Self: Sized,
             Self::Item: Copy + Ord { ... }
}
Expand description

Iterator extension trait

Provided Methods§

Source

fn is_strict_total_order(self) -> bool
where Self: Sized, Self::Item: PartialOrd,

Returns true iff the iterator is a strict total order. This implies the iterator is sorted and all elements are unique.

[x_1, ..., x_n].is_strict_total_order()
    := x_1 < x_2 < ... < x_n
§Examples
use std::iter;
use lexe_std::iter::IteratorExt;

assert!(iter::empty::<u32>().is_strict_total_order());
assert!(&[1].iter().is_strict_total_order());
assert!(&[1, 2, 6].iter().is_strict_total_order());

assert!(!&[2, 1].iter().is_strict_total_order());
assert!(!&[1, 2, 2, 3].iter().is_strict_total_order());
Source

fn is_strict_total_order_by_key<F, K>(self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> K, K: PartialOrd,

Returns true iff the iterator is a strict total order according to the key extraction function f.

[x_1, ..., x_n].is_strict_total_order_by_key(f)
    := f(x_1) < f(x_2) < ... < f(x_n)
Source

fn min_max(self) -> Option<(Self::Item, Self::Item)>
where Self: Sized, Self::Item: Copy + Ord,

Return the minimum and maximum elements of an Iterator, in one pass.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§