1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
pub struct LayoutChecksum; impl LayoutChecksum { // NOTE: source layout-custom.c pub fn calc(s: &str) -> usize { let mut csum: usize = 0; let chars = s.chars(); for chr in chars { csum = (csum >> 1) + ((csum & 1) << 15); csum += chr as usize; } csum } }