aboutsummaryrefslogtreecommitdiff
path: root/native/treebitmap_nif/src/nibbles.rs
blob: ca1939b84e182cb2a93b68f302221eee301b62d9 (plain) (blame)
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
26
27
28
29
30
31
32
pub struct NibblesV4 {
    pub n: [u8; 8],
}
pub struct NibblesV6 {
    pub n: [u8; 32],
}

pub enum Nibbles {
    V4(NibblesV4),
    V6(NibblesV6),
}

impl AsRef<[u8]> for Nibbles {
    fn as_ref(&self) -> &[u8] {
        match self {
            Nibbles::V4(nib4) => nib4.as_ref(),
            Nibbles::V6(nib6) => nib6.as_ref(),
        }
    }
}

impl AsRef<[u8]> for NibblesV4 {
    fn as_ref(&self) -> &[u8] {
        &self.n
    }
}

impl AsRef<[u8]> for NibblesV6 {
    fn as_ref(&self) -> &[u8] {
        &self.n
    }
}