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}