feat: improve blake3 sequential hashing performance

This commit is contained in:
Bobbin Threadbare 2022-12-09 13:51:16 -08:00
parent 8f3aaa7eb6
commit 9782992662

View file

@ -276,13 +276,11 @@ where
let digest = if Felt::IS_CANONICAL { let digest = if Felt::IS_CANONICAL {
blake3::hash(E::elements_as_bytes(elements)) blake3::hash(E::elements_as_bytes(elements))
} else { } else {
E::as_base_elements(elements) let mut hasher = blake3::Hasher::new();
.iter() for element in E::as_base_elements(elements) {
.fold(blake3::Hasher::new(), |mut hasher, felt| { hasher.update(&element.as_int().to_le_bytes());
hasher.update(&felt.as_int().to_le_bytes()); }
hasher hasher.finalize()
})
.finalize()
}; };
*shrink_bytes(&digest.into()) *shrink_bytes(&digest.into())
} }