【发布时间】:2022-01-21 00:31:22
【问题描述】:
我正在使用 Sha256 来散列多个值。一个值可以是一个枚举,我想知道如何散列它
use sha2::Sha256
enum EnumType{
A,
B,
C { value: u8 }
}
let enum_value = EnumType::A;
let mut hasher = Sha256::new();
// How to hash the enum?
// hasher.update(enum_value);
hasher.finalize()
最简单的方法是为每个枚举值分配一个常量值,但这似乎不干净
fn get_enum_value(value: &EnumType)-> &[u8]{
match value {
EnumType::A => &[1u8],
EnumType::B => &[2u8],
EnumType::C { value } => &[3u8, value]
}
}
// ... //
hasher.update(get_enum_value(enum_value));
// ... //
有没有更好的办法?
【问题讨论】:
-
你可以
#[derive(Hash)] -
如何将哈希特征与 Sha256 一起使用?这表示它不兼容stackoverflow.com/a/56198580/6592293
-
你用的是什么散列箱?