Function enumerate_split

Source
pub fn enumerate_split<Iter, T>(
    iter: Iter,
    split_value: T,
) -> EnumerateSplit<Iter, T> 
where Iter: Iterator<Item = T>, T: PartialEq,
Expand description

Similar to enumerate but gives (usize, usize) where first is block number and second is block position (indexed by 0)

Can split on any possible T but useful to use T=char, split_value='\n'

§Example

use enumerate_split::enumerate_split;

let mut input = enumerate_split("Some \n\nstring with a newline".chars(), '\n');
assert_eq!(input.next(), Some(('S', (0, 0))));
assert_eq!(input.next(), Some(('o', (0, 1))));
assert_eq!(input.next(), Some(('m', (0, 2))));
assert_eq!(input.next(), Some(('e', (0, 3))));
assert_eq!(input.next(), Some((' ', (0, 4))));
assert_eq!(input.next(), Some(('\n', (0, 5))));
assert_eq!(input.next(), Some(('\n', (1, 0))));
assert_eq!(input.next(), Some(('s', (2, 0))));