#digest #crc32 #traits #crc32fast #dyn-digest

crc32_digest

使用 crc32fast 实现 digest::{Digest, DynDigest}

2 个版本

0.8.1 2019 年 6 月 4 日
0.8.0 2019 年 6 月 4 日

28#crc32

Download history 81/week @ 2024-03-31 27/week @ 2024-04-07 1/week @ 2024-04-14 19/week @ 2024-04-21 1/week @ 2024-04-28 20/week @ 2024-05-05 76/week @ 2024-05-26 1/week @ 2024-06-02 7/week @ 2024-06-16 6/week @ 2024-06-23 9/week @ 2024-06-30 7/week @ 2024-07-07 109/week @ 2024-07-14

每月 132 次下载

MIT/Apache

23KB

crc32_digest

Build Status Crate API Minimum rustc version

使用 crc32fast 实现了 digest crate 的 Digest 和 DynDigest 特性。

如果 digest 使用 std 特性构建,Crc32 也将实现 Write 特性。

此 crate 提供的 Crc32 结构体内部实现了 FixedOutput、Input 和 Reset 特性。digest crate 为实现这些特性的类型提供了 Digest 和 DynDigest 的泛型实现(以及 Clone 和 Default)。

要求

需要 Rust 1.32 或更高版本以支持 u32::to_be_bytes。

Write 支持 requires digest 的 std 特性启用。

用法

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");
}

或者,可以使用 Crc32::from_state(state: u32) 创建具有特定初始状态的新的 Crc32 实例。

依赖关系

约 420KB