Skip to main content

stasis/ports/outbound/runtime/
workflow_engine.rs

1use async_trait::async_trait;
2use serde_json::Value;
3
4use crate::domain::errors::Result;
5
6#[derive(Clone, Debug)]
7pub struct WorkflowExecutionOutput {
8    pub run_id: String,
9    pub execution: Value,
10    pub final_state: Value,
11    pub lint_warnings: Value,
12}
13
14#[async_trait]
15pub trait WorkflowEngine: Send + Sync {
16    async fn execute_grapheme_source(
17        &self,
18        source: &str,
19        state_current: Option<&Value>,
20    ) -> Result<WorkflowExecutionOutput>;
21}