orx_tree/dyn/
variant.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
use super::reclaimer::DynReclaimer;
use crate::TreeVariant;
use core::marker::PhantomData;
use orx_selfref_col::{RefsSingle, RefsVec, Variant};

/// A dynamic tree where each of the nodes might have any number of child nodes.
pub struct Dyn<T> {
    p: PhantomData<T>,
}

impl<T> Variant for Dyn<T> {
    type Item = T;

    type Prev = RefsSingle<Self>;

    type Next = RefsVec<Self>;

    type Ends = RefsSingle<Self>;
}

impl<T> TreeVariant for Dyn<T> {
    type Reclaimer = DynReclaimer;

    type Children = RefsVec<Self>;
}