tiny_bitstream/
constants.rs

1/// This type just used to force using u32 or u64 at some points
2pub(crate) type BitContainer = usize; // TODO try with usize and multiple configurations
3
4pub const BIT_MASK_SIZE: u8 = CTNR_SIZE;
5
6#[cfg(target_pointer_width = "64")]
7pub const BIT_MASK: [BitContainer; (BIT_MASK_SIZE + 1) as usize] = [
8    0,
9    1,
10    3,
11    7,
12    0xF,
13    0x1F,
14    0x3F,
15    0x7F,
16    0xFF,
17    0x1FF,
18    0x3FF,
19    0x7FF,
20    0xFFF,
21    0x1FFF,
22    0x3FFF,
23    0x7FFF,
24    0xFFFF,
25    0x1FFFF,
26    0x3FFFF,
27    0x7FFFF,
28    0xFFFFF,
29    0x1FFFFF,
30    0x3FFFFF,
31    0x7FFFFF,
32    0xFFFFFF,
33    0x1FFFFFF,
34    0x3FFFFFF,
35    0x7FFFFFF,
36    0xFFFFFFF,
37    0x1FFFFFFF,
38    0x3FFFFFFF,
39    0x7FFFFFFF,
40    0xFFFFFFFF,
41    0x1FFFFFFFF,
42    0x3FFFFFFFF,
43    0x7FFFFFFFF,
44    0xFFFFFFFFF,
45    0x1FFFFFFFFF,
46    0x3FFFFFFFFF,
47    0x7FFFFFFFFF,
48    0xFFFFFFFFFF,
49    0x1FFFFFFFFFF,
50    0x3FFFFFFFFFF,
51    0x7FFFFFFFFFF,
52    0xFFFFFFFFFFF,
53    0x1FFFFFFFFFFF,
54    0x3FFFFFFFFFFF,
55    0x7FFFFFFFFFFF,
56    0xFFFFFFFFFFFF,
57    0x1FFFFFFFFFFFF,
58    0x3FFFFFFFFFFFF,
59    0x7FFFFFFFFFFFF,
60    0xFFFFFFFFFFFFF,
61    0x1FFFFFFFFFFFFF,
62    0x3FFFFFFFFFFFFF,
63    0x7FFFFFFFFFFFFF,
64    0xFFFFFFFFFFFFFF,
65    0x1FFFFFFFFFFFFFF,
66    0x3FFFFFFFFFFFFFF,
67    0x7FFFFFFFFFFFFFF,
68    0xFFFFFFFFFFFFFFF,
69    0x1FFFFFFFFFFFFFFF,
70    0x3FFFFFFFFFFFFFFF,
71    0x7FFFFFFFFFFFFFFF,
72    0xFFFFFFFFFFFFFFFF,
73];
74#[cfg(target_pointer_width = "32")]
75pub const BIT_MASK: [BitContainer; (BIT_MASK_SIZE + 1) as usize] = [
76    0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF,
77    0xFFFF, 0x1FFFF, 0x3FFFF, 0x7FFFF, 0xFFFFF, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF, 0xFFFFFF, 0x1FFFFFF,
78    0x3FFFFFF, 0x7FFFFFF, 0xFFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF,
79];
80
81/// Size in bits of the bits container
82pub const CTNR_SIZE: u8 = std::mem::size_of::<BitContainer>() as u8 * 8;
83pub const CTNR_BYTES_SIZE: usize = std::mem::size_of::<BitContainer>();