arnaucube
arnaucube/miden-cryptoPublic Self-hosted repository
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}