1pub fn make_table_crc16(poly: u16) -> [u16; 256] {
2 let mut table = [0u16; 256];
3 for i in 0..256 {
4 let mut value = i as u16;
5 for _ in 0..8 {
6 value = if (value & 1) == 1 {
7 (value >> 1) ^ poly
8 } else {
9 value >> 1
10 }
11 }
12 table[i] = value;
13 }
14 table
15}
16
17pub fn make_table_crc32(poly: u32) -> [u32; 256] {
18 let mut table = [0u32; 256];
19 for i in 0..256 {
20 let mut value = i as u32;
21 for _ in 0..8 {
22 value = if (value & 1) == 1 {
23 (value >> 1) ^ poly
24 } else {
25 value >> 1
26 }
27 }
28 table[i] = value;
29 }
30 table
31}
32
33pub fn make_table_crc64(poly: u64) -> [u64; 256] {
34 let mut table = [0u64; 256];
35 for i in 0..256 {
36 let mut value = i as u64;
37 for _ in 0..8 {
38 value = if (value & 1) == 1 {
39 (value >> 1) ^ poly
40 } else {
41 value >> 1
42 }
43 }
44 table[i] = value;
45 }
46 table
47}