Как вы модифицируете байты в `Hash` в субстрате четности?
Учитывая некоторые Hash
значение, которое генерируется во время выполнения субстрата, как мне изменить или получить доступ к отдельным байтам этого хэша?
1 ответ
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()
на хеш вернет кусочек байтов, который вы можете использовать как обычно:
Например:
// 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;