1#![allow(
19 non_snake_case,
20 clippy::module_inception,
21 clippy::missing_safety_doc,
22 clippy::needless_doctest_main,
23 clippy::upper_case_acronyms
24)]
25#![cfg_attr(not(feature = "std"), no_std)]
26#![cfg_attr(all(feature = "alloc", feature = "nightly"), feature(allocator_api))]
27#![doc(
28 html_logo_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/logo.png",
29 html_favicon_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/favicon.ico"
30)]
31
32#[cfg(feature = "alloc")]
33extern crate alloc;
34
35#[cfg(feature = "rand")]
37pub use rand;
38#[cfg(feature = "rand")]
39pub use rand_distr;
40
41#[doc(inline)]
42pub use scsys_state as state;
43#[doc(inline)]
44#[cfg(feature = "time")]
45pub use scsys_time as time;
46
47#[macro_use]
48pub(crate) mod macros {
49 #[macro_use]
50 pub mod gsw;
51 #[macro_use]
52 pub mod seal;
53 #[macro_use]
54 pub mod wrapper;
55}
56
57#[doc(inline)]
58pub use self::{
59 error::{Error, Result},
60 id::Id,
61 types::prelude::*,
62};
63
64#[doc(inline)]
65pub use scsys_state::{NState, State, StateBase, StateRepr, Stateful};
66#[cfg(feature = "time")]
67pub use scsys_time::{Now, RawTimestamp, Timestamp};
68
69pub mod cont;
71pub mod error;
73pub mod id;
75
76pub mod types {
77 #[doc(inline)]
78 pub use self::prelude::*;
79
80 pub mod direction;
83 pub mod stages;
84
85 pub(crate) mod prelude {
86 #[allow(unused_imports)]
87 #[doc(inline)]
88 pub use super::aliases::*;
89 #[doc(inline)]
90 pub use super::direction::*;
91 #[doc(inline)]
92 pub use super::stages::*;
93 }
94
95 pub(crate) mod aliases {
96 #[cfg(feature = "alloc")]
97 pub type BoxError = alloc::boxed::Box<dyn core::error::Error + Send + Sync + 'static>;
99 #[cfg(feature = "alloc")]
100 pub type BoxResult<T = ()> = core::result::Result<T, BoxError>;
102 }
103}
104
105#[doc(hidden)]
106pub mod prelude {
107 #[cfg(feature = "time")]
108 pub use scsys_time::prelude::*;
109
110 pub use crate::cont::prelude::*;
111 pub use crate::id::prelude::*;
112 pub use crate::state::prelude::*;
113 pub use crate::types::prelude::*;
114}