pub fn make_table_crc16(poly: u16) -> [u16; 256] { let mut table = [0u16; 256]; for i in 0..256 { let mut value = i as u16; for _ in 0..8 { value = if (value & 1) == 1 { (value >> 1) ^ poly } else { value >> 1 } } table[i] = value; } table } pub fn make_table_crc32(poly: u32) -> [u32; 256] { let mut table = [0u32; 256]; for i in 0..256 { let mut value = i as u32; for _ in 0..8 { value = if (value & 1) == 1 { (value >> 1) ^ poly } else { value >> 1 } } table[i] = value; } table } pub fn make_table_crc64(poly: u64) -> [u64; 256] { let mut table = [0u64; 256]; for i in 0..256 { let mut value = i as u64; for _ in 0..8 { value = if (value & 1) == 1 { (value >> 1) ^ poly } else { value >> 1 } } table[i] = value; } table }