xerv_core/flow/
mod.rs

1//! Flow definition types for YAML deserialization.
2//!
3//! This module provides strongly-typed structures for parsing YAML flow definitions:
4//!
5//! - [`FlowDefinition`] - The top-level flow document
6//! - [`NodeDefinition`] - Individual node configuration
7//! - [`EdgeDefinition`] - Connection between nodes
8//! - [`TriggerDefinition`] - Trigger configuration
9//!
10//! # Example YAML
11//!
12//! ```yaml
13//! name: order_processing
14//! version: "1.0"
15//! description: Process incoming orders
16//!
17//! triggers:
18//!   - id: webhook_in
19//!     type: webhook
20//!     params:
21//!       port: 8080
22//!       path: /orders
23//!
24//! nodes:
25//!   fraud_check:
26//!     type: std::switch
27//!     config:
28//!       condition:
29//!         type: greater_than
30//!         field: risk_score
31//!         value: 0.8
32//!
33//!   high_risk:
34//!     type: std::log
35//!     config:
36//!       message: "High risk order detected"
37//!
38//! edges:
39//!   - from: webhook_in
40//!     to: fraud_check
41//!   - from: fraud_check.true
42//!     to: high_risk
43//!
44//! settings:
45//!   max_concurrent_executions: 100
46//!   execution_timeout_ms: 60000
47//! ```
48
49mod definition;
50mod edge;
51mod node;
52mod settings;
53mod trigger;
54mod validation;
55
56pub use definition::FlowDefinition;
57pub use edge::EdgeDefinition;
58pub use node::NodeDefinition;
59pub use settings::FlowSettings;
60pub use trigger::TriggerDefinition;
61pub use validation::{ValidationError, ValidationResult};