lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

lib.rs (1352B)


      1 #![doc = include_str!("../README.md")]
      2 #![forbid(unsafe_code)]
      3 
      4 pub mod atomic;
      5 pub mod authored;
      6 pub mod authored_atomic;
      7 pub mod authored_delivery;
      8 pub mod authored_draft;
      9 pub mod authored_draft_pair;
     10 pub mod authored_draft_query;
     11 pub mod authored_draft_submission;
     12 pub mod backup;
     13 mod error;
     14 pub mod event;
     15 pub mod journal;
     16 #[cfg(feature = "memory")]
     17 pub mod memory;
     18 pub mod outbox;
     19 pub mod private_artifact;
     20 pub mod projection;
     21 pub mod status;
     22 
     23 pub use backup::StorageReliability as BackupSource;
     24 pub use error::Error;
     25 pub use event::EventStore;
     26 pub use journal::Journal;
     27 pub use outbox::Outbox;
     28 pub use projection::ProjectionStore;
     29 pub use status::StorageStatus;
     30 
     31 /// Complete backend-neutral storage capability implemented by concrete stores.
     32 pub trait Storage:
     33     EventStore
     34     + Journal
     35     + Outbox
     36     + ProjectionStore
     37     + private_artifact::PrivateArtifactStore
     38     + backup::StorageReliability
     39     + atomic::AtomicStorage
     40     + authored_atomic::AuthoredAtomicStorage
     41     + authored_draft::AuthoredDraftStore
     42 {
     43 }
     44 
     45 impl<T> Storage for T where
     46     T: EventStore
     47         + Journal
     48         + Outbox
     49         + ProjectionStore
     50         + private_artifact::PrivateArtifactStore
     51         + backup::StorageReliability
     52         + atomic::AtomicStorage
     53         + authored_atomic::AuthoredAtomicStorage
     54         + authored_draft::AuthoredDraftStore
     55 {
     56 }