pub struct ClientBuilder { /* private fields */ }Expand description
Builder for A2aClient.
Start with ClientBuilder::new (URL) or ClientBuilder::from_card
(agent card auto-configuration).
Implementations§
Source§impl ClientBuilder
impl ClientBuilder
Sourcepub fn new(endpoint: impl Into<String>) -> ClientBuilder
pub fn new(endpoint: impl Into<String>) -> ClientBuilder
Creates a builder targeting endpoint.
The endpoint is passed directly to the selected transport; it should be
the full base URL of the agent (e.g. http://localhost:8080).
Sourcepub fn from_card(card: &AgentCard) -> ClientBuilder
pub fn from_card(card: &AgentCard) -> ClientBuilder
Creates a builder pre-configured from an AgentCard.
Selects the first supported interface from the card.
Sourcepub const fn with_timeout(self, timeout: Duration) -> ClientBuilder
pub const fn with_timeout(self, timeout: Duration) -> ClientBuilder
Sets the per-request timeout for non-streaming calls.
Sourcepub const fn with_stream_connect_timeout(
self,
timeout: Duration,
) -> ClientBuilder
pub const fn with_stream_connect_timeout( self, timeout: Duration, ) -> ClientBuilder
Sets the timeout for establishing SSE stream connections.
Once the stream is established, this timeout no longer applies. Defaults to 30 seconds.
Sourcepub const fn with_connection_timeout(self, timeout: Duration) -> ClientBuilder
pub const fn with_connection_timeout(self, timeout: Duration) -> ClientBuilder
Sets the TCP connection timeout (DNS + handshake).
Defaults to 10 seconds. Prevents hanging for the OS default (~2 min) when the server is unreachable.
Sourcepub fn with_protocol_binding(self, binding: impl Into<String>) -> ClientBuilder
pub fn with_protocol_binding(self, binding: impl Into<String>) -> ClientBuilder
Sets the preferred protocol binding.
Overrides any binding derived from the agent card.
Sourcepub fn with_accepted_output_modes(self, modes: Vec<String>) -> ClientBuilder
pub fn with_accepted_output_modes(self, modes: Vec<String>) -> ClientBuilder
Sets the accepted output modes sent in SendMessage configurations.
Sourcepub const fn with_history_length(self, length: u32) -> ClientBuilder
pub const fn with_history_length(self, length: u32) -> ClientBuilder
Sets the history length to request in task responses.
Sourcepub const fn with_return_immediately(self, val: bool) -> ClientBuilder
pub const fn with_return_immediately(self, val: bool) -> ClientBuilder
Sets return_immediately for SendMessage calls.
Sourcepub fn with_custom_transport(self, transport: impl Transport) -> ClientBuilder
pub fn with_custom_transport(self, transport: impl Transport) -> ClientBuilder
Provides a fully custom transport implementation.
Overrides the transport that would normally be built from the endpoint URL and protocol preference.
Sourcepub const fn without_tls(self) -> ClientBuilder
pub const fn without_tls(self) -> ClientBuilder
Disables TLS (plain HTTP only).
Sourcepub fn with_interceptor<I>(self, interceptor: I) -> ClientBuilderwhere
I: CallInterceptor,
pub fn with_interceptor<I>(self, interceptor: I) -> ClientBuilderwhere
I: CallInterceptor,
Adds an interceptor to the chain.
Interceptors are run in the order they are added.
Sourcepub fn build(self) -> Result<A2aClient, ClientError>
pub fn build(self) -> Result<A2aClient, ClientError>
Validates configuration and constructs the A2aClient.
§Errors
ClientError::InvalidEndpointif the endpoint URL is malformed.ClientError::Transportif the selected transport cannot be initialized.