orx_selfref_col/common_traits/
into.rs

1use crate::{
2    MemoryReclaimNever, MemoryReclaimOnThreshold, MemoryReclaimer, Node, SelfRefCol, Variant,
3};
4use orx_pinned_vec::PinnedVec;
5
6impl<const D: usize, R, V, P> From<SelfRefCol<V, MemoryReclaimNever, P>>
7    for SelfRefCol<V, MemoryReclaimOnThreshold<D, V, R>, P>
8where
9    V: Variant,
10    R: MemoryReclaimer<V>,
11    P: PinnedVec<Node<V>>,
12{
13    fn from(value: SelfRefCol<V, MemoryReclaimNever, P>) -> Self {
14        let (core, state) = value.into_inner();
15        Self::from_raw_parts(core, Default::default(), state)
16    }
17}
18
19impl<const D: usize, R, V, P> From<SelfRefCol<V, MemoryReclaimOnThreshold<D, V, R>, P>>
20    for SelfRefCol<V, MemoryReclaimNever, P>
21where
22    V: Variant,
23    R: MemoryReclaimer<V>,
24    P: PinnedVec<Node<V>>,
25{
26    fn from(value: SelfRefCol<V, MemoryReclaimOnThreshold<D, V, R>, P>) -> Self {
27        let (core, state) = value.into_inner();
28        Self::from_raw_parts(core, Default::default(), state)
29    }
30}