butterflow_models/
state_diff.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3use ts_rs::TS;
4use uuid::Uuid;
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, TS)]
8pub enum DiffOperation {
9 Add,
11 Update,
13 Remove,
15 Append,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, TS)]
21pub struct FieldDiff {
22 pub operation: DiffOperation,
24 pub value: Option<serde_json::Value>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize, TS)]
30pub struct WorkflowRunDiff {
31 pub workflow_run_id: Uuid,
33 pub fields: HashMap<String, FieldDiff>,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize, TS)]
39pub struct TaskDiff {
40 pub task_id: Uuid,
42 pub fields: HashMap<String, FieldDiff>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize, TS)]
48pub struct StateDiff {
49 pub workflow_run_id: Uuid,
51 pub fields: HashMap<String, FieldDiff>,
53}