1#![allow(clippy::module_inception)]
22#![cfg_attr(not(feature = "std"), no_std)]
23#![doc(
24 html_logo_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/logo.png",
25 html_favicon_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/favicon.ico"
26)]
27
28#[cfg(feature = "alloc")]
29extern crate alloc;
30#[cfg(feature = "rand")]
32#[doc(no_inline)]
33pub use rand;
34#[cfg(feature = "rand")]
35#[doc(no_inline)]
36pub use rand_distr;
37
38#[macro_use]
39pub(crate) mod macros {
40 #[macro_use]
41 pub mod gsw;
42 #[macro_use]
43 pub mod seal;
44 #[macro_use]
45 pub mod wrapper;
46}
47
48#[doc(inline)]
49pub use self::{
50 error::*,
51 id::Id,
52 state::{NState, State, StateBase, StateRepr, Stateful},
53 time::{Now, RawTimestamp, Timestamp},
54 types::prelude::*,
55};
56
57pub mod error;
58pub mod id;
59pub mod state;
60pub mod time;
61
62pub mod types {
63 #[doc(inline)]
64 pub use self::prelude::*;
65
66 pub mod direction;
67
68 pub(crate) mod prelude {
69 #[allow(unused_imports)]
70 #[doc(inline)]
71 pub use super::aliases::*;
72 #[doc(inline)]
73 pub use super::direction::*;
74 }
75
76 pub(crate) mod aliases {
77 #[cfg(feature = "alloc")]
78 pub type BoxError = alloc::boxed::Box<dyn core::error::Error + Send + Sync + 'static>;
80 #[cfg(feature = "alloc")]
81 pub type BoxResult<T = ()> = core::result::Result<T, BoxError>;
83 #[cfg(feature = "std")]
84 pub type Arcm<T> = std::sync::Arc<std::sync::Mutex<T>>;
86 #[cfg(feature = "std")]
87 pub type IOResult<T = ()> = std::io::Result<T>;
89 }
90}
91
92pub mod prelude {
93 #[doc(no_inline)]
94 pub use crate::error::*;
95 #[doc(no_inline)]
96 pub use crate::id::prelude::*;
97 #[doc(no_inline)]
98 pub use crate::state::prelude::*;
99 #[doc(no_inline)]
100 pub use crate::time::prelude::*;
101 #[doc(no_inline)]
102 pub use crate::types::prelude::*;
103}