orx_selfref_col/common_traits/from_iter.rs
1use crate::{MemoryPolicy, Node, SelfRefCol, Variant};
2use orx_pinned_vec::PinnedVec;
3
4impl<V, M, P> FromIterator<V::Item> for SelfRefCol<V, M, P>
5where
6 V: Variant,
7 M: MemoryPolicy<V>,
8 P: PinnedVec<Node<V>> + Default,
9{
10 fn from_iter<I: IntoIterator<Item = V::Item>>(iter: I) -> Self {
11 let mut nodes = P::default();
12 for data in iter.into_iter() {
13 nodes.push(Node::new_free_node(data));
14 }
15 Self::with_active_nodes(nodes)
16 }
17}