eryon_mem/
lib.rs

1/*
2    Appellation: eryon-mem <library>
3    Contrib: @FL03
4*/
5//! # eryon-mem
6//!
7//! This crate focuses on implementing the topological memory mechanism for the substrate and
8//! its constituents
9//!
10extern crate eryon_core as eryon;
11
12#[doc(inline)]
13pub use self::{
14    blocks::Block,
15    error::*,
16    features::prelude::*,
17    ledger::TopoLedger,
18    transactions::{Transaction, TransactionKind},
19    types::prelude::*,
20};
21
22#[macro_use]
23pub(crate) mod macros {
24    #[macro_use]
25    pub mod seal;
26}
27
28pub mod blocks;
29/// this module contains the [`MemoryError`] implementation
30pub mod error;
31pub mod features;
32pub mod ledger;
33/// defines the [`Transaction`] and provides supporting types and traits
34pub mod transactions;
35
36pub mod types {
37    //! the `types` module implements various types used within the topological memory system
38    #[doc(inline)]
39    pub use self::prelude::*;
40
41    /// this module provides the [`MemoryPosition`] implementation for tracking the current
42    /// position of a feature within the topological memory.
43    pub mod position;
44    /// this module provides the [`MemoryProperties`] implementation for managing properties of
45    /// features within the topological memory.
46    pub mod properties;
47    /// this module provides the [`MemoryStatistics`] implementation for gathering statistics
48    /// about the memory system
49    pub mod statistics;
50
51    pub(crate) mod prelude {
52        #[doc(inline)]
53        pub use super::position::*;
54        #[doc(inline)]
55        pub use super::properties::*;
56        #[doc(inline)]
57        pub use super::statistics::*;
58    }
59}
60
61pub mod prelude {
62    #[doc(no_inline)]
63    pub use crate::error::*;
64
65    #[doc(no_inline)]
66    pub use crate::blocks::prelude::*;
67    #[doc(no_inline)]
68    pub use crate::features::prelude::*;
69    #[doc(no_inline)]
70    pub use crate::ledger::prelude::*;
71    #[doc(no_inline)]
72    pub use crate::transactions::prelude::*;
73    #[doc(no_inline)]
74    pub use crate::types::prelude::*;
75}