Skip to main content

scud/attractor/handlers/
exit.rs

1//! Exit node handler — no-op (engine checks goal gates after this).
2
3use anyhow::Result;
4use async_trait::async_trait;
5
6use crate::attractor::context::Context;
7use crate::attractor::graph::{PipelineGraph, PipelineNode};
8use crate::attractor::outcome::Outcome;
9use crate::attractor::run_directory::RunDirectory;
10
11use super::Handler;
12
13pub struct ExitHandler;
14
15#[async_trait]
16impl Handler for ExitHandler {
17    async fn execute(
18        &self,
19        _node: &PipelineNode,
20        _context: &Context,
21        _graph: &PipelineGraph,
22        _run_dir: &RunDirectory,
23    ) -> Result<Outcome> {
24        Ok(Outcome::success())
25    }
26}