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