有谁知道 Rust 是否提供某种包装迭代器?例如:
let data = vec!(1, 2, 3, 4, 5);
let mut it = data.into_iter();
let mut wrapped = some_wrapping_iter(it); // wrap it
wrapped.take(2).for_each(|e| process_first_2_elems(e));
it = wrapped.into(); // and get back the original
it.for_each(|e| process_remaining(e));
Run Code Online (Sandbox Code Playgroud) rust ×1