size_hinter 0.4.2

Iterator adaptors allowing overriding or specifying size_hint.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mod macros;

use size_hinter::InvalidIterator;

macros::panics!(panics_on_next, InvalidIterator::<()>::new().next(), "InvalidIterator is not iteratable");
macros::panics!(panics_on_next_back, InvalidIterator::<()>::new().next_back(), "InvalidIterator is not iteratable");
macros::panics!(panics_on_len, InvalidIterator::<()>::new().len(), "InvalidIterator does not have a valid len");

#[test]
fn reports_invalid_size_hint() {
    let iter = InvalidIterator::<()>::new();
    let (lower, upper) = iter.size_hint();
    assert!(lower > upper.unwrap(), "Size hint should be invalid");
}