pub struct JsonRpcTransport { /* private fields */ }Expand description
JSON-RPC 2.0 transport: HTTP POST to a single endpoint.
Create via JsonRpcTransport::new or let crate::ClientBuilder
construct one automatically from the agent card.
Implementations§
Source§impl JsonRpcTransport
impl JsonRpcTransport
Sourcepub fn new(endpoint: impl Into<String>) -> Result<JsonRpcTransport, ClientError>
pub fn new(endpoint: impl Into<String>) -> Result<JsonRpcTransport, ClientError>
Creates a new transport targeting the given endpoint URL.
The endpoint is typically the url field from an a2a_protocol_types::AgentCard.
§Errors
Returns ClientError::InvalidEndpoint if the URL is malformed.
Sourcepub fn with_timeout(
endpoint: impl Into<String>,
request_timeout: Duration,
) -> Result<JsonRpcTransport, ClientError>
pub fn with_timeout( endpoint: impl Into<String>, request_timeout: Duration, ) -> Result<JsonRpcTransport, ClientError>
Creates a new transport with a custom request timeout.
§Errors
Returns ClientError::InvalidEndpoint if the URL is malformed.
Sourcepub fn with_timeouts(
endpoint: impl Into<String>,
request_timeout: Duration,
stream_connect_timeout: Duration,
) -> Result<JsonRpcTransport, ClientError>
pub fn with_timeouts( endpoint: impl Into<String>, request_timeout: Duration, stream_connect_timeout: Duration, ) -> Result<JsonRpcTransport, ClientError>
Creates a new transport with separate request and stream connect timeouts.
Uses the default TCP connection timeout (10 seconds).
§Errors
Returns ClientError::InvalidEndpoint if the URL is malformed.
Sourcepub fn with_all_timeouts(
endpoint: impl Into<String>,
request_timeout: Duration,
stream_connect_timeout: Duration,
connection_timeout: Duration,
) -> Result<JsonRpcTransport, ClientError>
pub fn with_all_timeouts( endpoint: impl Into<String>, request_timeout: Duration, stream_connect_timeout: Duration, connection_timeout: Duration, ) -> Result<JsonRpcTransport, ClientError>
Creates a new transport with all timeout parameters.
connection_timeout is applied to the underlying TCP connector (DNS +
handshake), preventing indefinite hangs when the server is unreachable.
§Errors
Returns ClientError::InvalidEndpoint if the URL is malformed.
Trait Implementations§
Source§impl Clone for JsonRpcTransport
impl Clone for JsonRpcTransport
Source§fn clone(&self) -> JsonRpcTransport
fn clone(&self) -> JsonRpcTransport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for JsonRpcTransport
impl Debug for JsonRpcTransport
Source§impl Transport for JsonRpcTransport
impl Transport for JsonRpcTransport
Source§fn send_request<'a>(
&'a self,
method: &'a str,
params: Value,
extra_headers: &'a HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<Value, ClientError>> + Send + 'a>>
fn send_request<'a>( &'a self, method: &'a str, params: Value, extra_headers: &'a HashMap<String, String>, ) -> Pin<Box<dyn Future<Output = Result<Value, ClientError>> + Send + 'a>>
Source§fn send_streaming_request<'a>(
&'a self,
method: &'a str,
params: Value,
extra_headers: &'a HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<EventStream, ClientError>> + Send + 'a>>
fn send_streaming_request<'a>( &'a self, method: &'a str, params: Value, extra_headers: &'a HashMap<String, String>, ) -> Pin<Box<dyn Future<Output = Result<EventStream, ClientError>> + Send + 'a>>
EventStream. Read moreAuto Trait Implementations§
impl Freeze for JsonRpcTransport
impl !RefUnwindSafe for JsonRpcTransport
impl Send for JsonRpcTransport
impl Sync for JsonRpcTransport
impl Unpin for JsonRpcTransport
impl UnsafeUnpin for JsonRpcTransport
impl !UnwindSafe for JsonRpcTransport
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request