arnaucube
arnaucube/miden-cryptoPublic Self-hosted repository
miden-crypto/src/merkle/mod.rs
src/merkle/mod.rsRaw
 1use crate::Word;
 2
 3#[cfg(test)]
 4use crate::{Felt, ZERO};
 5
 6pub mod merkle_path_set;
 7pub mod merkle_tree;
 8
 9// ERRORS
10// ================================================================================================
11
12#[derive(Clone, Debug)]
13pub enum MerkleError {
14    DepthTooSmall,
15    DepthTooBig(u32),
16    NumLeavesNotPowerOfTwo(usize),
17    InvalidIndex(u32, u64),
18    InvalidDepth(u32, u32),
19    InvalidPath(Vec<Word>),
20    NodeNotInSet(u64),
21}
22
23// HELPER FUNCTIONS
24// ================================================================================================
25
26#[cfg(test)]
27const fn int_to_node(value: u64) -> Word {
28    [Felt::new(value), ZERO, ZERO, ZERO]
29}