density_rs/io/
write_signature.rs1#[derive(Debug)]
2pub struct WriteSignature {
3 pub(crate) pos: usize,
4 pub(crate) value: u64,
5 pub(crate) shift: u8,
6}
7
8impl WriteSignature {
9 pub fn new() -> Self {
10 WriteSignature { pos: 0, value: 0, shift: 0 }
11 }
12
13 #[inline(always)]
14 pub fn push_bits(&mut self, mask: u64, n: u8) {
15 self.value |= mask << self.shift;
16 self.shift += n;
17 }
18
19 #[inline(always)]
20 pub fn init(&mut self, pos: usize) {
21 self.pos = pos;
22 self.value = 0;
23 self.shift = 0;
24 }
25}