wfe-core 1.0.0

Core traits, models, builder, and executor for the WFE workflow engine
Documentation
pub mod decide;
pub mod delay;
pub mod end_step;
pub mod foreach_step;
pub mod if_step;
pub mod poll_endpoint;
pub mod recur;
pub mod saga_container;
pub mod schedule;
pub mod sequence;
pub mod wait_for;
pub mod while_step;

pub use decide::DecideStep;
pub use delay::DelayStep;
pub use end_step::EndStep;
pub use foreach_step::ForEachStep;
pub use if_step::IfStep;
pub use poll_endpoint::PollEndpointStep;
pub use recur::RecurStep;
pub use saga_container::SagaContainerStep;
pub use schedule::ScheduleStep;
pub use sequence::SequenceStep;
pub use wait_for::WaitForStep;
pub use while_step::WhileStep;

#[cfg(test)]
mod test_helpers {
    use crate::models::{ExecutionPointer, WorkflowInstance, WorkflowStep};
    use crate::traits::step::StepExecutionContext;
    use tokio_util::sync::CancellationToken;

    pub fn make_context<'a>(
        pointer: &'a ExecutionPointer,
        step: &'a WorkflowStep,
        workflow: &'a WorkflowInstance,
    ) -> StepExecutionContext<'a> {
        StepExecutionContext {
            item: None,
            execution_pointer: pointer,
            persistence_data: pointer.persistence_data.as_ref(),
            step,
            workflow,
            cancellation_token: CancellationToken::new(),
        }
    }

    pub fn default_workflow() -> WorkflowInstance {
        WorkflowInstance::new("test-workflow", 1, serde_json::json!({}))
    }

    pub fn default_step() -> WorkflowStep {
        WorkflowStep::new(0, "TestStep")
    }
}