Crates.io | crc32_digest |
lib.rs | crc32_digest |
version | 0.8.1 |
source | src |
created_at | 2019-06-04 04:04:44.152223 |
updated_at | 2019-06-04 04:38:29.621861 |
description | CRC32 implementation of digest::{Digest, DynDigest} using crc32fast |
homepage | |
repository | https://github.com/ajungren/crc32_digest |
max_upload_size | |
id | 138794 |
size | 89,276 |
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
.
Write
support requires the std
feature of digest
to be enabled.
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.