Function enumerate_split::enumerate_split [] [src]

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

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))));