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