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};