mithril_common/digesters/
mod.rs

1//! Tools to compute mithril digest from a Cardano node database.
2
3pub mod cache;
4mod cardano_immutable_digester;
5mod dumb_immutable_digester;
6mod immutable_digester;
7mod immutable_file;
8mod immutable_file_observer;
9mod ledger_file;
10
11pub use cardano_immutable_digester::CardanoImmutableDigester;
12pub use immutable_digester::{
13    ComputedImmutablesDigests, ImmutableDigester, ImmutableDigesterError,
14};
15pub use immutable_file::{ImmutableFile, ImmutableFileCreationError, ImmutableFileListingError};
16pub use immutable_file_observer::{
17    DumbImmutableFileObserver, ImmutableFileObserver, ImmutableFileObserverError,
18    ImmutableFileSystemObserver,
19};
20pub use ledger_file::{LedgerFile, LedgerFileListingError};
21
22pub use dumb_immutable_digester::DumbImmutableDigester;
23
24/// Directory name for the immutable files.
25pub const IMMUTABLE_DIR: &str = "immutable";
26/// Directory name for the ledger files.
27pub const LEDGER_DIR: &str = "ledger";
28/// Directory name for the volatile files.
29pub const VOLATILE_DIR: &str = "volatile";
30
31/// Returns the names of the files that compose an immutable trio.
32pub fn immutable_trio_names(
33    immutable_file_number: crate::entities::ImmutableFileNumber,
34) -> Vec<String> {
35    vec![
36        format!("{:05}.chunk", immutable_file_number),
37        format!("{:05}.primary", immutable_file_number),
38        format!("{:05}.secondary", immutable_file_number),
39    ]
40}
41
42cfg_test_tools! {
43    mod dummy_cardano_db;
44
45    pub use dummy_cardano_db::{DummyCardanoDb, DummyCardanoDbBuilder};
46}