use crc32fast::Hasher;
pub fn compute_checksum(data: &[u8]) -> u32 {
let mut hasher = Hasher::new();
hasher.update(data);
hasher.finalize()
}
pub fn verify_checksum(data: &[u8], expected: u32) -> bool {
compute_checksum(data) == expected
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_checksum() {
let data = b"Hello, World!";
let checksum = compute_checksum(data);
assert!(verify_checksum(data, checksum));
let corrupted = b"Hello, world!"; assert!(!verify_checksum(corrupted, checksum));
}
}