//@ run-pass use std::collections::HashMap; // This is a fancy one: it uses an external iterator established // outside the loop, breaks, then _picks back up_ and continues // iterating with it. pub fn main() { let mut h = HashMap::new(); let kvs = [(1, 10), (2, 20), (3, 30)]; for &(k,v) in &kvs { h.insert(k,v); } let mut x = 0; let mut y = 0; let mut i = h.iter(); for (&k,&v) in i.by_ref() { x += k; y += v; break; } for (&k,&v) in i { x += k; y += v; } assert_eq!(x, 6); assert_eq!(y, 60); }