orx_selfref_col/common_traits/
into.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use crate::{
    MemoryReclaimNever, MemoryReclaimOnThreshold, MemoryReclaimer, Node, SelfRefCol, Variant,
};
use orx_pinned_vec::PinnedVec;

impl<const D: usize, R, V, P> From<SelfRefCol<V, MemoryReclaimNever, P>>
    for SelfRefCol<V, MemoryReclaimOnThreshold<D, V, R>, P>
where
    V: Variant,
    R: MemoryReclaimer<V>,
    P: PinnedVec<Node<V>>,
{
    fn from(value: SelfRefCol<V, MemoryReclaimNever, P>) -> Self {
        let (core, state) = value.into_inner();
        Self::from_raw_parts(core, Default::default(), state)
    }
}

impl<const D: usize, R, V, P> From<SelfRefCol<V, MemoryReclaimOnThreshold<D, V, R>, P>>
    for SelfRefCol<V, MemoryReclaimNever, P>
where
    V: Variant,
    R: MemoryReclaimer<V>,
    P: PinnedVec<Node<V>>,
{
    fn from(value: SelfRefCol<V, MemoryReclaimOnThreshold<D, V, R>, P>) -> Self {
        let (core, state) = value.into_inner();
        Self::from_raw_parts(core, Default::default(), state)
    }
}