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