2 个版本
0.1.1 | 2022年5月29日 |
---|---|
0.1.0 | 2022年5月29日 |
#6 in #hashable
6KB
120 行
为 Rust 值提供简单的哈希接口
这个 crate 定义了两个 trait:[Hasher] 和 [Hashable]。
第一个代表哈希算法和状态,目前实现了 sha2::Sha256。
第二个为任何需要被哈希的 Rust 值实现了。提供了一个同名的 Helper derive 宏以避免样板代码。
当前实现 [Hashable] 的 std 类型集有限。欢迎提交 PR。
示例使用
use simple_hash::Hashable;
#[derive(Hashable)]
struct Foo {
a: u8,
b: u16,
c: Vec<u32>,
}
let foo = Foo {
a: 8,
b: 99,
c: vec![0,1,2,3],
};
let res = foo.digest::<sha2::Sha256>();
assert_eq!(res, hex_literal::hex!("929863ce588951eae0cc88755216f96951d431e7d15adbb836d8f1960bb65a9d"));
依赖项
~2MB
~48K SLoC