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
6mod executors;
7mod fork;
8mod helpers;
9mod lifecycle;
10
11#[cfg(test)]
12#[allow(
13    clippy::unwrap_used,
14    clippy::expect_used,
15    clippy::panic,
16    clippy::indexing_slicing,
17    clippy::too_many_lines
18)]
19mod tests;
20
21// Re-export everything so consumers (runner/distributed.rs, lib.rs, etc.)
22// continue to use `crate::execution::*` paths unchanged.
23
24// ── helpers ─────────────────────────────────────────────────────────────
25pub(crate) use helpers::{
26    ResumeParkedPosition, branch_execute_or_skip_task, check_guards, execute_or_skip_task,
27    park_at_delay, park_at_signal, retry_with_checkpoint, set_deadline_if_needed,
28};
29
30// ── fork ────────────────────────────────────────────────────────────────
31pub use fork::serialize_branch_results;
32pub(crate) use fork::{
33    ForkBranchOutcome, JoinResolution, collect_cached_branches, park_branch_at_delay,
34    park_branch_at_signal, resolve_join, settle_fork_outcome,
35};
36
37// ── executors ───────────────────────────────────────────────────────────
38pub use executors::{
39    execute_continuation_async, execute_continuation_sync, execute_continuation_with_checkpointing,
40};
41
42// ── lifecycle ───────────────────────────────────────────────────────────
43pub use lifecycle::{
44    ResumeOutcome, finalize_execution, get_resume_input, prepare_resume, prepare_run,
45};