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}