miden-crypto/src/merkle/mod.rs
src/merkle/mod.rsRaw
1use crate::{Vec, 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}