runifold-workflow 0.5.3

Durable workflow and Agent orchestration runtime for Runifold
Documentation
use std::{
    cmp::Reverse,
    collections::BTreeMap,
    future::Future,
    num::{NonZeroU32, NonZeroU64},
    pin::Pin,
    sync::{Arc, Mutex, MutexGuard},
    time::{Duration, SystemTime, UNIX_EPOCH},
};

use runifold_core::{
    Budget, Checkpoint, CheckpointError, CheckpointErrorKind, CheckpointId, Usage,
};
use serde::{Deserialize, Serialize};
use serde_json::Value;
use thiserror::Error;

use crate::checkpoint::{decode_revision, fork_checkpoint};
use crate::{
    WorkflowCheckpointHistoryLimit, WorkflowCheckpointPhase, WorkflowCheckpointRevision,
    WorkflowForkCommand, WorkflowForkOutcome, WorkflowInterruptCommand,
    WorkflowInterruptDecisionOutcome, WorkflowInterruptRequest, WorkflowLineage, WorkflowSignal,
    WorkflowSignalId, WorkflowSignalOutcome, WorkflowSignalRetention, WorkflowSignalSnapshot,
    WorkflowSignalState, WorkflowWait, WorkflowWake,
};

mod memory;
mod model;
mod traits;

pub use memory::InMemoryWorkflowStore;
pub use model::*;
pub use traits::{SystemWorkflowClock, WorkflowClock, WorkflowStore, WorkflowTaskRetentionStore};

#[cfg(test)]
mod tests;