scsys_core/cont/
mod.rs

1/*
2    appellation: store <module>
3    authors: @FL03
4*/
5//! this module is focused on defining a set of traits and types for abstracting the behaviourds
6//! of an entity capable of storing some data.
7#[doc(inline)]
8pub use self::{container::*, error::*, traits::prelude::*};
9
10/// this module implements the [`ContainerBase`] type, which is a base type for containers that
11/// use a store to manage their data.
12pub mod container;
13/// this module defiens the [`StoreError`] enum for handling various errors that can occur with
14/// stores
15pub mod error;
16
17pub mod traits {
18    #[doc(inline)]
19    pub use self::prelude::*;
20    /// this module defines the [`Entry`] trait for establishing a common interface for
21    /// entries in a store, which are key-value pairs.
22    pub mod entry;
23    /// this module defines the [`Get`] trait for establishing a common interface for
24    /// retrieving values from a store.
25    pub mod get;
26    /// this module defines the [`HKT`] trait for establishing a common interface
27    /// for higher-kinded types, which are types that take other types as parameters.
28    pub mod hkt;
29    /// this module defines the [`RawContainer`] trait for establishing a core interface for
30    /// various representations of a container.
31    pub mod raw_container;
32    /// this module defines the [`RawStore`] trait that extends the [`RawContainer`] trait to
33    /// establish an interface for key-value stores.
34    pub mod raw_store;
35
36    pub(crate) mod prelude {
37        #[doc(inline)]
38        pub use super::entry::*;
39
40        #[doc(inline)]
41        pub use super::raw_container::*;
42        #[doc(inline)]
43        pub use super::raw_store::*;
44    }
45}
46
47pub(crate) mod prelude {
48    #[doc(inline)]
49    pub use super::traits::prelude::*;
50}