mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-02 21:33:09 +00:00
imple Visitor for HashStorageMerkleTreeDeserializer
This commit is contained in:
parent
0daffaf4ad
commit
9df2b51813
@ -40,6 +40,32 @@ impl<Leaf: TreeLeavItem + Clone> HashStorageMerkleTreeDeserializer<Leaf> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de, Leav: TreeLeavItem + Clone + Deserialize<'de>> Visitor<'de> for HashStorageMerkleTreeDeserializer<Leav> {
|
||||
type Value= HashStorageMerkleTree<Leav>;
|
||||
|
||||
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||
formatter.write_str("HashStorageMerkleTree key value sequence.")
|
||||
}
|
||||
|
||||
fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
|
||||
where
|
||||
A: SeqAccess<'de>,
|
||||
{
|
||||
let mut vector = vec![];
|
||||
|
||||
loop {
|
||||
let opt_key = seq.next_element::<Leav>()?;
|
||||
if let Some(value) = opt_key {
|
||||
vector.push(value);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(HashStorageMerkleTree::new(vector))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
pub type PublicTransactionMerkleTree = HashStorageMerkleTree<Transaction>;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user