如何修改 Parity Substrate 中的“Hash”中的字节?
How do you modify the bytes in a `Hash` in Parity Substrate?
给定在底层运行时生成的一些 Hash
值,我如何修改或访问该散列的各个字节?
Hash
特征 Output
具有 AsRef
和 AsMut
特征,允许您将哈希作为字节片进行交互 ([u8]
):
pub trait Hash: 'static + MaybeSerializeDebug + Clone + Eq + PartialEq {
type Output: Member + MaybeSerializeDebug + AsRef<[u8]> + AsMut<[u8]>;
// ... removed for brevity
}
在散列上使用 as_ref()
或 as_mut()
将 return 一段您可以正常使用的字节:
例如:
// Iterate over a hash
let hash1 = <T as system::Trait>::Hashing::hash(1);
for hash_byte in hash1.as_ref().iter() {
// ... do something
}
或
// Add one to the first byte of a hash
let mut hash2 = <T as system::Trait>::Hashing::hash(2);
hash2.as_mut()[0] += 1;
给定在底层运行时生成的一些 Hash
值,我如何修改或访问该散列的各个字节?
Hash
特征 Output
具有 AsRef
和 AsMut
特征,允许您将哈希作为字节片进行交互 ([u8]
):
pub trait Hash: 'static + MaybeSerializeDebug + Clone + Eq + PartialEq {
type Output: Member + MaybeSerializeDebug + AsRef<[u8]> + AsMut<[u8]>;
// ... removed for brevity
}
在散列上使用 as_ref()
或 as_mut()
将 return 一段您可以正常使用的字节:
例如:
// Iterate over a hash
let hash1 = <T as system::Trait>::Hashing::hash(1);
for hash_byte in hash1.as_ref().iter() {
// ... do something
}
或
// Add one to the first byte of a hash
let mut hash2 = <T as system::Trait>::Hashing::hash(2);
hash2.as_mut()[0] += 1;