Function core::option::collect[src]
pub fn collect<T, Iter: Iterator<Option<T>>, V: FromIterator<T>>(iter: Iter) -> Option<V>
Takes each element in the Iterator: if it is None, no further
elements are taken, and the None is returned. Should no None occur, a
vector containing the values of each Option is returned.
Here is an example which increments every integer in a vector, checking for overflow:
fn main() { use std::option; use std::uint; let v = vec!(1u, 2u); let res: Option<Vec<uint>> = option::collect(v.iter().map(|x: &uint| if *x == uint::MAX { None } else { Some(x + 1) } )); assert!(res == Some(vec!(2u, 3u))); }use std::option; use std::uint; let v = vec!(1u, 2u); let res: Option<Vec<uint>> = option::collect(v.iter().map(|x: &uint| if *x == uint::MAX { None } else { Some(x + 1) } )); assert!(res == Some(vec!(2u, 3u)));