make crc code cleaner

png-branch
an 2018-12-08 17:50:01 -05:00
parent 6420e4a6e3
commit 7e88ab62c8
1 changed files with 7 additions and 5 deletions

View File

@ -1,11 +1,13 @@
fn crc_accum(a: u32) -> u32
{
if a & 1 == 1 {0xedb88320 ^ a >> 1}
else {a >> 1}
}
fn crc_init() -> [u32; 256]
{
let mut t = [0; 256];
for n in 0..256
{
t[n] = (0..8).fold(n as u32, |a, _|
{if a & 1 == 1 {0xedb88320 ^ a >> 1} else {a >> 1}});
}
for n in 0..256 {t[n] = (0..8).fold(n as u32, |a, _| crc_accum(a))}
t
}