pub struct MiddlewareChain { /* private fields */ }Expand description
A chain of middlewares that executes them in order.
Implementations§
Source§impl MiddlewareChain
impl MiddlewareChain
pub fn new(middlewares: Vec<Arc<dyn AgentMiddleware>>) -> Self
pub fn is_empty(&self) -> bool
pub async fn run_before_agent( &self, messages: &mut Vec<Message>, ) -> Result<(), SynapticError>
pub async fn run_after_agent( &self, messages: &mut Vec<Message>, ) -> Result<(), SynapticError>
pub async fn run_before_model( &self, request: &mut ModelRequest, ) -> Result<(), SynapticError>
pub async fn run_after_model( &self, request: &ModelRequest, response: &mut ModelResponse, ) -> Result<(), SynapticError>
Sourcepub async fn call_model(
&self,
request: ModelRequest,
base: &dyn ModelCaller,
) -> Result<ModelResponse, SynapticError>
pub async fn call_model( &self, request: ModelRequest, base: &dyn ModelCaller, ) -> Result<ModelResponse, SynapticError>
Execute a model call through the full middleware chain.
Runs the complete lifecycle: before_model -> wrap_model_call
chain -> after_model.
Sourcepub async fn call_tool(
&self,
request: ToolCallRequest,
base: &dyn ToolCaller,
) -> Result<Value, SynapticError>
pub async fn call_tool( &self, request: ToolCallRequest, base: &dyn ToolCaller, ) -> Result<Value, SynapticError>
Execute a tool call through the full middleware chain.
Auto Trait Implementations§
impl Freeze for MiddlewareChain
impl !RefUnwindSafe for MiddlewareChain
impl Send for MiddlewareChain
impl Sync for MiddlewareChain
impl Unpin for MiddlewareChain
impl UnsafeUnpin for MiddlewareChain
impl !UnwindSafe for MiddlewareChain
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more