mirror of
https://github.com/arnaucube/miden-crypto.git
synced 2026-01-13 09:31:28 +01:00
Enhancement of the Partial Merkle Tree (#163)
feat: implement additional functionality for the PartialMerkleTree
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
use super::{Felt, MerkleError, RpoDigest, StarkField};
|
||||
use crate::utils::{ByteReader, ByteWriter, Deserializable, DeserializationError, Serializable};
|
||||
use core::fmt::Display;
|
||||
|
||||
// NODE INDEX
|
||||
@@ -161,6 +162,22 @@ impl Display for NodeIndex {
|
||||
}
|
||||
}
|
||||
|
||||
impl Serializable for NodeIndex {
|
||||
fn write_into<W: ByteWriter>(&self, target: &mut W) {
|
||||
target.write_u8(self.depth);
|
||||
target.write_u64(self.value);
|
||||
}
|
||||
}
|
||||
|
||||
impl Deserializable for NodeIndex {
|
||||
fn read_from<R: ByteReader>(source: &mut R) -> Result<Self, DeserializationError> {
|
||||
let depth = source.read_u8()?;
|
||||
let value = source.read_u64()?;
|
||||
NodeIndex::new(depth, value)
|
||||
.map_err(|_| DeserializationError::InvalidValue("Invalid index".into()))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
Reference in New Issue
Block a user