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}