1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
mod atomic_set; mod atomic_ref; mod whitelist; mod registry; mod atomic; pub use atomic_set::AtomicSet; pub use atomic_ref::AtomicRef; pub use whitelist::Whitelist; pub use registry::{ Registry, RegistryItem }; pub use atomic::Atomic; use std::iter::FromIterator; use crate::Result; pub trait TryCollect<K>: Iterator { fn try_collect<B: FromIterator<K>>(self) -> Result<B> where Self: Sized; } impl<K, T: Iterator<Item=Result<K>>> TryCollect<K> for T { fn try_collect<B: FromIterator<K>>(self) -> Result<B> where Self: Sized { let collected: Vec<Result<K>> = self.collect(); let mut results = vec![]; for item in collected { results.push(item?); } return Ok(B::from_iter(results)); } }