#![forbid(unsafe_code)]
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
mod readme {}
pub mod assertions;
pub mod executors;
pub mod explore;
pub mod projection;
pub mod providers;
pub mod replay;
pub mod stores;
pub mod strategies;
pub mod workflows;
pub mod prelude {
pub use turnframe_core::prelude::*;
pub use crate::assertions::{
AssertionFailure, identical_blocks, no_high_risk_without_trusted_origin,
origin_satisfies_policy, receipts_backed_by_events, same_phase_in, single_phase,
};
pub use crate::executors::{
self, CHECK_COUNT as EXECUTOR_CHECK_COUNT, ExecutorFactory, InMemoryCase, SeededCase,
};
pub use crate::explore::{
ExplorationLimits, ExplorationReport, ExplorationViolation, ExplorationViolationKind,
SimulatedTransition, WorkflowModel, explore, reachable_states,
};
pub use crate::providers::{
RecordedCall, ScriptViolation, ScriptedProvider, ScriptedReply, ScriptedUnderstanding,
UnderstandingBuilder,
};
pub use crate::replay::{
ReplayDivergence, ReplayEvidence, ReplayGap, ReplayGaps, TurnExecution, same_turn,
};
pub use crate::stores::{FailurePoint, FakeStores, Stores, crash_boundary};
pub use crate::strategies;
pub use crate::workflows::claim::{
ClaimCommand, ClaimEvent, ClaimExecutor, ClaimField, ClaimModel, ClaimObligation,
ClaimOutcome, ClaimPhase, ClaimState, ClaimStatus, ClaimWorkflow, Proposal, ProposedField,
RecordedField,
};
pub use crate::workflows::traveler::{
DeclineReason, FieldState, TravelerCommand, TravelerEvent, TravelerExecutor, TravelerModel,
TravelerObligation, TravelerOutcome, TravelerPhase, TravelerState, TravelerStatus,
TravelerWorkflow,
};
pub use crate::workflows::trip::{
TripCommand, TripEvent, TripExecutor, TripModel, TripObligation, TripOutcome, TripPhase,
TripState, TripStatus, TripWorkflow,
};
pub use crate::workflows::{Applied, InMemoryExecutor, PureWorkflow, simulate};
}