ipld_car/config/
dag_layout.rs1#[cfg_attr(feature = "std", derive(Debug))]
3#[derive(Clone, Copy, PartialEq, Eq, Default)]
4pub enum DAGLayout {
5 #[default]
6 Flat,
7 Balanced(MaxChildren),
8 Trickle(MaxChildren, LayerRepeats),
9}
10
11impl DAGLayout {
12 pub fn max_children_per_layer(&self) -> u32 {
13 match self {
14 Self::Flat => u32::MAX,
15 Self::Balanced(max) => *max as u8 as u32,
16 Self::Trickle(max, _) => *max as u8 as u32,
17 }
18 }
19}
20
21#[cfg_attr(feature = "std", derive(Debug))]
23#[derive(Default, Clone, Copy, PartialEq, Eq)]
24#[repr(u8)]
25pub enum MaxChildren {
26 C11 = 11,
27 C44 = 44,
28 #[default]
29 C174 = 174,
30}
31
32#[cfg_attr(feature = "std", derive(Debug))]
34#[derive(Clone, Copy, Default, PartialEq, Eq)]
35#[repr(u8)]
36pub enum LayerRepeats {
37 LR1 = 1,
38 LR4 = 4,
39 #[default]
40 LR16 = 16,
41}