#![allow(
non_snake_case,
clippy::module_inception,
clippy::missing_safety_doc,
clippy::needless_doctest_main,
clippy::upper_case_acronyms
)]
#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(all(feature = "alloc", feature = "nightly"), feature(allocator_api))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/favicon.ico"
)]
#[cfg(feature = "alloc")]
extern crate alloc;
#[cfg(feature = "rand")]
pub use rand;
#[cfg(feature = "rand")]
pub use rand_distr;
#[doc(inline)]
pub use scsys_state as state;
#[doc(inline)]
#[cfg(feature = "time")]
pub use scsys_time as time;
#[macro_use]
pub(crate) mod macros {
#[macro_use]
pub mod gsw;
#[macro_use]
pub mod seal;
#[macro_use]
pub mod wrapper;
}
#[doc(inline)]
pub use self::{
error::{Error, Result},
id::Id,
types::prelude::*,
};
#[doc(inline)]
pub use scsys_state::{NState, State, StateBase, StateRepr, Stateful};
#[cfg(feature = "time")]
pub use scsys_time::{Now, RawTimestamp, Timestamp};
pub mod cont;
pub mod error;
pub mod id;
pub mod types {
#[doc(inline)]
pub use self::prelude::*;
pub mod direction;
pub mod stages;
pub(crate) mod prelude {
#[allow(unused_imports)]
#[doc(inline)]
pub use super::aliases::*;
#[doc(inline)]
pub use super::direction::*;
#[doc(inline)]
pub use super::stages::*;
}
pub(crate) mod aliases {
#[cfg(feature = "alloc")]
pub type BoxError = alloc::boxed::Box<dyn core::error::Error + Send + Sync + 'static>;
#[cfg(feature = "alloc")]
pub type BoxResult<T = ()> = core::result::Result<T, BoxError>;
}
}
#[doc(hidden)]
pub mod prelude {
#[cfg(feature = "time")]
pub use scsys_time::prelude::*;
pub use crate::cont::prelude::*;
pub use crate::id::prelude::*;
pub use crate::state::prelude::*;
pub use crate::types::prelude::*;
}