ralph-workflow 0.7.18

PROMPT-driven multi-agent orchestrator for git repos
Documentation
use std::cell::RefCell;

use super::{Effect, PipelineEvent, UIEvent};

#[derive(Debug)]
pub struct CapturedState {
    pub effects: RefCell<Vec<Effect>>,
    pub ui_events: RefCell<Vec<UIEvent>>,
    pub events: RefCell<Vec<PipelineEvent>>,
}

impl Default for CapturedState {
    fn default() -> Self {
        Self {
            effects: RefCell::new(Vec::new()),
            ui_events: RefCell::new(Vec::new()),
            events: RefCell::new(Vec::new()),
        }
    }
}

impl CapturedState {
    pub fn new() -> Self {
        Self::default()
    }

    pub fn push_effect(&self, effect: Effect) {
        self.effects.borrow_mut().push(effect);
    }

    pub fn push_ui_event(&self, event: UIEvent) {
        self.ui_events.borrow_mut().push(event);
    }

    pub fn push_event(&self, event: PipelineEvent) {
        self.events.borrow_mut().push(event);
    }
}