1mod louds_impl;
2
3extern crate fid_rs;
4use fid_rs::Fid;
5
6#[cfg(feature = "serde")]
7use serde::{Deserialize, Serialize};
8
9#[cfg(feature = "mem_dbg")]
10use mem_dbg::{MemDbg, MemSize};
11
12#[derive(Clone, Debug)]
19#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
20#[cfg_attr(feature = "mem_dbg", derive(MemDbg, MemSize))]
21pub struct Louds {
22 lbs: Fid,
23}
24
25#[derive(PartialEq, Eq, Debug, Clone, Copy)]
26#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
27#[cfg_attr(feature = "mem_dbg", derive(MemDbg, MemSize))]
28#[repr(transparent)]
29pub struct LoudsNodeNum(pub u64);
31
32#[derive(PartialEq, Eq, Debug, Clone, Copy)]
33#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
34#[cfg_attr(feature = "mem_dbg", derive(MemDbg, MemSize))]
35#[repr(transparent)]
36pub struct LoudsIndex(pub u64);
38
39pub struct ChildIndexIter<'a> {
41 inner: &'a Louds,
42 node: LoudsNodeNum,
43 start: Option<u64>,
44 end: Option<u64>,
45}
46pub struct ChildNodeIter<'a>(ChildIndexIter<'a>);
48
49pub struct AncestorNodeIter<'a> {
51 inner: &'a Louds,
52 node: LoudsNodeNum,
53}