Skip to main content

lnc_core/
checksum.rs

1use crc32fast::Hasher;
2
3#[inline]
4#[must_use]
5pub fn crc32c(data: &[u8]) -> u32 {
6    let mut hasher = Hasher::new();
7    hasher.update(data);
8    hasher.finalize()
9}
10
11#[cfg(test)]
12mod tests {
13    use super::*;
14
15    #[test]
16    fn test_crc32c_empty() {
17        assert_eq!(crc32c(&[]), 0);
18    }
19
20    #[test]
21    fn test_crc32c_data() {
22        let data = b"hello world";
23        let crc = crc32c(data);
24        assert_ne!(crc, 0);
25        assert_eq!(crc, crc32c(data));
26    }
27}