pub enum EdgeGroup {
Single {
source: String,
target: String,
condition: Option<Arc<dyn Fn(&Value) -> Pin<Box<dyn Future<Output = bool> + Send>> + Sync + Send>>,
},
FanOut {
source: String,
targets: Vec<String>,
selection: Option<Arc<dyn Fn(&Value, &[String]) -> Pin<Box<dyn Future<Output = Vec<String>> + Send>> + Sync + Send>>,
case_labels: Option<Vec<String>>,
},
FanIn {
sources: Vec<String>,
target: String,
},
}Expand description
A group of edges sharing routing semantics. Rust equivalent of the
EdgeGroup hierarchy.
Variants§
Single
A single conditional edge from source to target.
Fields
FanOut
Broadcast from source to all targets (optionally filtered by a
selection function — used for switch/case and multi-selection).
case_labels, when present, is index-aligned with targets and carries
human-readable labels for visualization (e.g. switch-case names). It has
no effect on routing.
Fields
FanIn
Barrier: target runs once all sources have delivered, receiving the
collected messages as a JSON array.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for EdgeGroup
impl !UnwindSafe for EdgeGroup
impl Freeze for EdgeGroup
impl Send for EdgeGroup
impl Sync for EdgeGroup
impl Unpin for EdgeGroup
impl UnsafeUnpin for EdgeGroup
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more