crc32_digest

Crates.iocrc32_digest
lib.rscrc32_digest
version0.8.1
sourcesrc
created_at2019-06-04 04:04:44.152223
updated_at2019-06-04 04:38:29.621861
descriptionCRC32 implementation of digest::{Digest, DynDigest} using crc32fast
homepage
repositoryhttps://github.com/ajungren/crc32_digest
max_upload_size
id138794
size89,276
Ayron Jungren (ajungren)

documentation

README

crc32_digest

Build Status Crate API Minimum rustc version

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).

Requirements

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

Write support requires the std feature of digest to be enabled.

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.

Commit count: 4

cargo fmt