macro_rules! digest {
($digest:expr $(,)?) => { ... };
}Expand description
Macro to create Ethereum digest values from string literals that get parsed at compile time. A compiler error will be generated if an invalid digest is specified.
§Examples
Basic usage:
for digest in [
digest!("0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"),
digest!("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"),
] {
assert_eq!(digest, Digest([0xee; 32]));
}The macro generate compile errors on invalid input:
ⓘ
let _ = digest!("not a valid hex digest literal!");Note that this can be used in const contexts, but unfortunately not in
pattern matching contexts:
const DIGEST: Digest = digest!("0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20");ⓘ
match Digest::of("thing") {
digest!("0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20") => println!("matches"),
_ => println!("doesn't match"),
}