ai_agents/
traits.rs

1use crate::{error::Error, ModuleParam};
2
3pub trait Adapter: Send + Sync {
4    fn adapt(&self, input: ModuleParam) -> ModuleParam;
5}
6
7impl<F: Fn(ModuleParam) -> ModuleParam + Send + Sync + 'static> Adapter for F {
8    fn adapt(&self, input: ModuleParam) -> ModuleParam {
9        self(input)
10    }
11}
12
13#[async_trait::async_trait]
14pub trait UnitProcess: Send + Sync {
15    fn get_name(&self) -> &str;
16    async fn process(&self, input: ModuleParam) -> Result<ModuleParam, Error>;
17}