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}