1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#[derive(Clone, Copy, Debug)]
#[repr(packed)]
pub struct Cb64 {
    lo: u32,
    hi: u32,
}

impl Cb64 {
    pub fn pack(value: u64) -> Cb64 {
        Cb64 {
            lo: value as u32,
            hi: (value >> 32) as u32,
        }
    }

    pub fn unpack(&self) -> u64 {
        (self.lo as u64) | ((self.hi as u64) << 32)
    }
}