nbcs 0.2.0

A simple checksum calculator for hexadecimal strings.
Documentation
pub fn checksum(data: &[u8]) -> u16 {
    let sum: u16 = data.iter().fold(0u16, |acc, &byte| acc.wrapping_add(byte as u16));
    !sum
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let data = [1, 2, 3, 4];
        let result = checksum(&data);
        // 1 + 2 + 3 + 4 = 10, 取反后为 !10 = 245
        assert_eq!(result, !10u16);
    }

    #[test]
    fn empty_array() {
        let data = [];
        let result = checksum(&data);
        // 空数组和为0,取反后为 !0 = 255
        assert_eq!(result, !0u16);
    }

    #[test]
    fn single_byte() {
        let data = [255];
        let result = checksum(&data);
        // 255取反后为 !255 = 0
        assert_eq!(result, !255u16);
    }

    #[test]
    fn large_array() {
        let data = vec![1; 200]; // 200 个字节,每个都是 1
        let result = checksum(&data);
        // 200 % 256 = 200, 取反后为 !200 = 55
        assert_eq!(result, !200u16);
    }
}