agent-line 0.1.1

A batteries-included Rust library for building agent workflows
Documentation
use agent_line::{Agent, Ctx, Outcome, StepResult};

#[derive(Clone)]
struct State {
    n: i32,
}

struct AddOne;

impl Agent<State> for AddOne {
    fn name(&self) -> &'static str {
        "add_one"
    }

    fn run(&mut self, state: State, _ctx: &mut Ctx) -> StepResult<State> {
        let next = State { n: state.n + 1 };
        Ok((next, Outcome::Done))
    }
}

fn main() {
    let mut ctx = Ctx::new();
    let mut agent = AddOne;
    let (state, out) = agent.run(State { n: 1 }, &mut ctx).unwrap();
    println!("state.n={} outcome={out:?}", state.n);
}