Skip to main content

scud/attractor/handlers/
conditional.rs

1//! Conditional node handler — routing pass-through.
2//!
3//! The conditional handler itself is a no-op. Routing happens
4//! in the runner's edge selection algorithm based on edge conditions.
5
6use anyhow::Result;
7use async_trait::async_trait;
8
9use crate::attractor::context::Context;
10use crate::attractor::graph::{PipelineGraph, PipelineNode};
11use crate::attractor::outcome::Outcome;
12use crate::attractor::run_directory::RunDirectory;
13
14use super::Handler;
15
16pub struct ConditionalHandler;
17
18#[async_trait]
19impl Handler for ConditionalHandler {
20    async fn execute(
21        &self,
22        _node: &PipelineNode,
23        _context: &Context,
24        _graph: &PipelineGraph,
25        _run_dir: &RunDirectory,
26    ) -> Result<Outcome> {
27        Ok(Outcome::success())
28    }
29}