#![doc(
html_logo_url = "https://raw.githubusercontent.com/kassian-dev/ironstate/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/kassian-dev/ironstate/main/assets/favicon-32.png"
)]
#![doc = include_str!("../README.md")]
#![forbid(unsafe_code)]
#![warn(missing_docs)]
extern crate self as ironstate;
mod analysis;
mod error;
mod invariant;
mod kind;
mod listener;
mod machine;
#[macro_use]
mod macros;
mod metadata;
mod migrate;
#[cfg(feature = "proptest")]
mod testing;
pub use error::{RestoreError, TransitionError};
pub use invariant::{Invariant, Invariants};
pub use kind::Kind;
pub use listener::TransitionRecord;
pub use machine::{EventKind, Machine, StateMachine, TransitionRules};
pub use metadata::MachineMetadata;
pub use migrate::{MigrateFrom, Versioned};
#[cfg(feature = "derive")]
pub use ironstate_derive::{Event, StateMachine};
pub mod analysis_report {
pub use crate::analysis::{Claim, Confidence, Report, analyze};
}
#[cfg(feature = "proptest")]
#[doc(hidden)]
pub mod testing_support {
pub use crate::testing::*;
}
#[doc(hidden)]
#[cfg(feature = "restore")]
pub mod __rt {
pub use crate::migrate::rt::*;
}
pub mod prelude {
#[cfg(feature = "derive")]
pub use crate::Event;
pub use crate::{
EventKind, Invariant, Invariants, Kind, Machine, MigrateFrom, RestoreError, StateMachine,
TransitionError, TransitionRules, Versioned,
};
}