Crate with_position

Source
Expand description

A Rust iterator extension trait to extend iterators with a new method called with_position which makes it easier to handle an element being the first, last, middle or only element in an iteration. It is similar to a method in itertools with the same name, but with a slightly different API, which IMO is a bit easier to use.

§Example

use with_position::{WithPosition, Position};

let result: Vec<_> = vec![1,2,3].into_iter().with_position().collect();

assert_eq!(result[0], (Position::First, 1));
assert_eq!(result[1], (Position::Middle, 2));
assert_eq!(result[2], (Position::Last, 3));

assert_eq!(result[0].0.is_first(), true);
assert_eq!(result[1].0.is_first(), false);

Structs§

PositionIterator
An iterator adapter that yields tuples where the first element is a Position and the second is the item.

Enums§

Position
An enum which indicates the position of an item in an iteration.

Traits§

WithPosition
Extension trait for iterators which adds the with_position method