Skip to main content

Module interceptor

Module interceptor 

Source
Expand description

Request/response interceptor infrastructure.

Interceptors let callers inspect and modify every A2A request before it is sent and every response after it is received. Common uses include:

§Example

use a2a_protocol_client::interceptor::{CallInterceptor, ClientRequest, ClientResponse};
use a2a_protocol_client::error::ClientResult;

struct LoggingInterceptor;

impl CallInterceptor for LoggingInterceptor {
    fn before<'a>(&'a self, req: &'a mut ClientRequest)
        -> impl std::future::Future<Output = ClientResult<()>> + Send + 'a
    {
        async move { let _ = req; Ok(()) }
    }
    fn after<'a>(&'a self, resp: &'a ClientResponse)
        -> impl std::future::Future<Output = ClientResult<()>> + Send + 'a
    {
        async move { let _ = resp; Ok(()) }
    }
}

Structs§

ClientRequest
A logical A2A request as seen by interceptors.
ClientResponse
A logical A2A response as seen by interceptors.
InterceptorChain
An ordered list of CallInterceptors applied to every request.

Traits§

CallInterceptor
Hooks called before every A2A request and after every response.