1use super::reclaimer::DaryReclaimer;
2use crate::TreeVariant;
3use core::marker::PhantomData;
4use orx_selfref_col::{RefsArrayLeftMost, RefsSingle, Variant};
5
6pub struct Dary<const D: usize, T> {
8 p: PhantomData<T>,
9}
10
11unsafe impl<const D: usize, T> Sync for Dary<D, T> {}
15
16unsafe impl<const D: usize, T> Send for Dary<D, T> {}
20
21impl<const D: usize, T> Variant for Dary<D, T> {
22 type Item = T;
23
24 type Prev = RefsSingle<Self>;
25
26 type Next = RefsArrayLeftMost<D, Self>;
27
28 type Ends = RefsSingle<Self>;
29}
30
31impl<const D: usize, T> TreeVariant for Dary<D, T> {
32 type Reclaimer = DaryReclaimer;
33
34 type Children = RefsArrayLeftMost<D, Self>;
35}