1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use generic_fletcher::Fletcher; use generic_fletcher::FletcherSum; pub type Fletcher32 = Fletcher<u32, u16>; impl FletcherSum<u16> for u32 { fn default_value() -> Self { 0x0000ffff } fn max_chunk_size() -> usize { 360 } fn combine(lower: &Self, upper: &Self) -> Self { lower | (upper << 16) } fn reduce(self) -> Self { (self & 0xffff) + (self >> 16) } }