#![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;
#[macro_use]
pub(crate) mod macros {
#[macro_use]
pub mod seal;
}
#[doc(inline)]
pub use self::{
error::{Error, Result},
nstate::StateBase,
state::State,
traits::prelude::*,
types::prelude::*,
};
pub mod error;
pub(crate) mod nstate;
pub(crate) mod state;
mod impls {
mod impl_state;
mod impl_state_ops;
#[allow(deprecated)]
mod impl_deprecated;
}
pub mod traits {
#[doc(inline)]
pub use self::prelude::*;
pub mod kind;
pub mod state;
pub mod state_repr;
pub mod stateful;
pub(crate) mod prelude {
#[doc(inline)]
pub use super::kind::*;
#[doc(inline)]
pub use super::state::*;
#[doc(inline)]
pub use super::state_repr::*;
#[doc(inline)]
pub use super::stateful::*;
}
}
pub mod types {
#[doc(inline)]
pub use self::prelude::*;
pub mod kinds;
pub mod nary;
pub(crate) mod prelude {
#[doc(inline)]
pub use super::aliases::*;
#[doc(inline)]
pub use super::kinds::*;
#[doc(inline)]
pub use super::nary::*;
}
pub(crate) mod aliases {
use super::Nary;
use crate::nstate::StateBase;
pub type NState<T, const N: usize = 4> = StateBase<T, Nary<N>>;
}
}
#[doc(hidden)]
pub mod prelude {
pub use crate::nstate::StateBase;
pub use crate::state::State;
pub use crate::traits::prelude::*;
pub use crate::types::prelude::*;
}