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