1#![cfg_attr(feature = "no-std", no_std)]
28
29#[cfg(feature = "no-std")]
30extern crate alloc;
31
32pub mod config;
33pub mod constructors;
34pub mod delta;
35pub mod error;
36pub mod hash;
37pub mod node;
38pub mod operations;
39pub mod proof;
40pub mod proofs;
41pub mod rebuild;
42pub mod security;
43pub mod sparse_index;
44pub mod storage;
45pub mod tree;
46pub mod traits;
47pub mod validation;
48pub mod visualization;
49
50#[cfg(feature = "serde")]
53pub mod serde_impl;
54
55#[cfg(feature = "clockhash")]
56pub mod clockhash;
57
58#[cfg(feature = "clockhash")]
59pub use clockhash::ClockHashAdapter;
60
61pub use error::ChronoMerkleError;
63#[cfg(feature = "blake3-hash")]
64pub use hash::Blake3Hasher;
65pub use hash::HashFunction;
66pub use node::{Node, NodeType};
67pub use proof::{ChronoProof, ProofStep};
68pub use security::{SecurityEvent, SecurityEventType, SecurityLevel, SecurityLogger, NoOpLogger};
69#[cfg(feature = "std")]
70pub use security::StdErrLogger;
71pub use sparse_index::SparseIndex;
72#[cfg(feature = "storage")]
73pub use storage::MemoryStorage;
74#[cfg(all(feature = "storage", feature = "std", not(feature = "no-std")))]
75pub use storage::FileStorage;
76pub use tree::{ChronoMerkleTree, TreeConfig};
77
78pub type DefaultChronoMerkleTree = ChronoMerkleTree<[u8; 32], Blake3Hasher, NoOpLogger>;
83
84#[cfg(any(feature = "sha2-hash", not(any(feature = "sha2-hash", feature = "blake3-hash"))))]
86pub use hash::DefaultHasher;
87
88#[cfg(test)]
89mod tests;