orx_tree/dyn/variant.rs
1use super::reclaimer::DynReclaimer;
2use crate::TreeVariant;
3use core::marker::PhantomData;
4use orx_selfref_col::{RefsSingle, RefsVec, Variant};
5
6/// A dynamic tree where each of the nodes might have any number of child nodes.
7pub struct Dyn<T> {
8 p: PhantomData<T>,
9}
10
11impl<T> Variant for Dyn<T> {
12 type Item = T;
13
14 type Prev = RefsSingle<Self>;
15
16 type Next = RefsVec<Self>;
17
18 type Ends = RefsSingle<Self>;
19}
20
21impl<T> TreeVariant for Dyn<T> {
22 type Reclaimer = DynReclaimer;
23
24 type Children = RefsVec<Self>;
25}