Add durandal::crc module
parent
f5984c9739
commit
cba430393a
|
@ -0,0 +1,18 @@
|
||||||
|
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}});
|
||||||
|
}
|
||||||
|
t
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn crc32(b: &[u8], s: u32) -> u32
|
||||||
|
{
|
||||||
|
let t = crc_init();
|
||||||
|
!b.iter().fold(s, |a, &o| {a >> 8 ^ t[(a & 0xff ^ o as u32) as usize]})
|
||||||
|
}
|
||||||
|
|
||||||
|
// EOF
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub mod bin;
|
pub mod bin;
|
||||||
pub mod machead;
|
pub mod crc;
|
||||||
pub mod text;
|
|
||||||
pub mod image;
|
pub mod image;
|
||||||
|
pub mod machead;
|
||||||
pub mod pict;
|
pub mod pict;
|
||||||
|
pub mod text;
|
||||||
|
|
||||||
// EOF
|
// EOF
|
||||||
|
|
Loading…
Reference in New Issue