Skip to main content

sayiir_runtime/execution/
mod.rs

1//! Shared workflow execution logic.
2//!
3//! Provides generic execution functions that can be used by different runners
4//! (in-process, Python bindings, etc.) by supplying task execution callbacks.
5
6pub(crate) mod control_flow;
7mod executors;
8mod fork;
9mod helpers;
10mod lifecycle;
11pub(crate) mod loop_runner;
12
13#[cfg(test)]
14#[allow(
15    clippy::unwrap_used,
16    clippy::expect_used,
17    clippy::panic,
18    clippy::indexing_slicing,
19    clippy::too_many_lines,
20    clippy::absurd_extreme_comparisons,
21    clippy::useless_conversion
22)]
23mod tests;
24
25// Re-export everything so consumers (runner/distributed.rs, lib.rs, etc.)
26// continue to use `crate::execution::*` paths unchanged.
27
28// ── helpers ─────────────────────────────────────────────────────────────
29pub(crate) use helpers::{
30    ResumeParkedPosition, branch_execute_or_skip_task, check_guards, execute_or_skip_task,
31    retry_with_checkpoint, set_deadline_if_needed,
32};
33pub(crate) use loop_runner::decode_loop_envelope;
34
35// ── fork ────────────────────────────────────────────────────────────────
36pub use fork::serialize_branch_results;
37pub(crate) use fork::{
38    ForkBranchOutcome, JoinResolution, collect_cached_branches, resolve_join, settle_fork_outcome,
39};
40
41// ── executors ───────────────────────────────────────────────────────────
42pub use executors::{
43    execute_continuation_async, execute_continuation_sync, execute_continuation_with_checkpointing,
44};
45
46// ── lifecycle ───────────────────────────────────────────────────────────
47pub use lifecycle::{
48    PrepareRunOutcome, ResumeOutcome, check_existing_instance, finalize_execution,
49    get_resume_input, prepare_resume, prepare_run,
50};