6个版本 (稳定)
1.3.0 | 2023年9月6日 |
---|---|
1.3.0-rc.1 | 2023年6月23日 |
1.2.0 | 2022年11月2日 |
1.1.0 | 2022年10月5日 |
1.0.1 | 2022年10月5日 |
在 算法 中排名第 352
每月下载量 8,359
在 11 个crate中使用(通过 frost-core)
8KB
99 行
const-crc32
const crc32校验和实现的函数。
示例
const BYTES: &[u8] = "The quick brown fox jumps over the lazy dog".as_bytes();
const CKSUM: u32 = const_crc32::crc32(BYTES);
assert_eq!(CKSUM, 0x414fa339_u32);
用法
这是一个原始实现,如果用于运行时动态数据,预期性能较差。使用通常应限制在基于构建时提供的静态或const数据声明的const变量。
#[const_eval_limit]
您可能需要增加crate范围的const_eval_limit
设置以使用const_crc32
处理更大的字节切片。
增加const_eval_limit
需要nightly-only #![feature(const_eval_limit)]
。
之前,这个crate自行设置了限制,但截至2022-10-30的nightly,const_crc32
中设置的值不会增加使用库的crate的限制。
构建时const数据大约100k的编译时间小于1秒。
lib.rs
:
const crc32校验和实现的函数。
示例
const BYTES: &[u8] = "The quick brown fox jumps over the lazy dog".as_bytes();
const CKSUM: u32 = const_crc32::crc32(BYTES);
assert_eq!(CKSUM, 0x414fa339_u32);