crc32_digest 0.8.0

CRC32 implementation of digest::{Digest, DynDigest} using crc32fast
Documentation

crc32_digest

An implementation of the digest crate's Digest and DynDigest traits using crc32fast.

If digest is built with the std feature enabled, Crc32 will implement Write as well.

Internally, the Crc32 struct provided by this crate implements the FixedOutput, Input, and Reset traits. A blanket impl of Digest and DynDigest is provided by digest for types implementing those traits (along with Clone and Default).

Rust 1.32 or newer is required for u32::to_be_bytes.

Usage

use crc32_digest::Crc32;
use digest::Digest;

fn main() {
    let mut crc32 = Crc32::new();
    crc32.input(b"hello, world");
    let result = crc32.result();
    
    // Get checksum as a byte slice
    assert_eq!(result.as_slice(), &[0xff, 0xab, 0x72, 0x3a]);
    // Format checksum as a lowercase hexadecimal string
    assert_eq!(format!("{:x}", result), "ffab723a");
}

Alternatively, Crc32::from_state(state: u32) can be used to create a new Crc32 instance with a specific initial state.