#![deny(missing_docs)]
#![deny(clippy::pedantic)]
#![forbid(unsafe_code)]
#![deny(
clippy::unwrap_used,
clippy::expect_used,
clippy::panic,
clippy::indexing_slicing,
clippy::todo,
clippy::unimplemented,
clippy::dbg_macro,
clippy::print_stdout,
clippy::print_stderr
)]
#[cfg(not(any(feature = "json", feature = "rkyv")))]
compile_error!(
"at least one serialization codec must be enabled: enable the `json` or `rkyv` feature"
);
pub mod error;
pub mod execution;
pub mod prelude;
mod runner;
pub mod serialization;
pub mod worker;
pub use error::RuntimeError;
pub use execution::{
ResumeOutcome, execute_continuation_async, execute_continuation_sync,
execute_continuation_with_checkpointing, finalize_execution, prepare_resume, prepare_run,
serialize_branch_results,
};
pub use runner::WorkflowRunExt;
pub use runner::WorkflowRunner;
pub use runner::distributed::CheckpointingRunner;
pub use runner::in_process::InProcessRunner;
pub use worker::{
ExternalTaskExecutor, ExternalWorkflow, PooledWorker, PooledWorkerBuilder, WorkerHandle,
WorkflowIndex, WorkflowRegistry,
};
pub use sayiir_core::branch_key::BranchKey;
pub use sayiir_core::task_context;
#[cfg(feature = "macros")]
pub use sayiir_macros::{BranchKey, task, workflow};
pub use sayiir_persistence as persistence;