orx_concurrent_vec/common_traits/from_iter.rs
1use crate::ConcurrentVec;
2
3impl<T> FromIterator<T> for ConcurrentVec<T> {
4 fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self {
5 let vec = ConcurrentVec::new();
6
7 let iter = iter.into_iter();
8 match iter.size_hint() {
9 (a, Some(b)) if a == b => {
10 vec.extend_n_items(iter, a);
11 }
12 _ => {
13 for x in iter {
14 vec.push(x);
15 }
16 }
17 }
18
19 vec
20 }
21}