pub struct HftTransport { /* private fields */ }Expand description
Multi-endpoint RPC transport with health-aware routing.
Implements tower::Service<RequestPacket> → Alloy Transport (blanket impl)
→ usable with RootProvider.
Clone is cheap (Arc).
Implementations§
Source§impl HftTransport
impl HftTransport
Sourcepub fn new(config: TransportConfig) -> Result<Self>
pub fn new(config: TransportConfig) -> Result<Self>
Create a new transport from configuration.
Initializes one HTTP transport per configured endpoint. Each gets its own circuit breaker. This does NOT make any network calls — the transports connect lazily on first request.
Sourcepub fn health_status(&self) -> Vec<EndpointStatus>
pub fn health_status(&self) -> Vec<EndpointStatus>
Get the health status of all endpoints.
Sourcepub fn healthy_count(&self) -> usize
pub fn healthy_count(&self) -> usize
Number of endpoints currently in Closed (healthy) state.
Lock-free: reads atomic state mirrors without taking any mutexes.
Sourcepub fn endpoint_urls(&self) -> Vec<&str>
pub fn endpoint_urls(&self) -> Vec<&str>
URLs of all configured endpoints.
Trait Implementations§
Source§impl Clone for HftTransport
impl Clone for HftTransport
Source§fn clone(&self) -> HftTransport
fn clone(&self) -> HftTransport
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HftTransport
impl Debug for HftTransport
Source§impl Service<RequestPacket> for HftTransport
impl Service<RequestPacket> for HftTransport
Source§type Response = ResponsePacket
type Response = ResponsePacket
Responses given by the service.
Source§type Error = RpcError<TransportErrorKind>
type Error = RpcError<TransportErrorKind>
Errors produced by the service.
Source§type Future = Pin<Box<dyn Future<Output = Result<ResponsePacket, RpcError<TransportErrorKind>>> + Send>>
type Future = Pin<Box<dyn Future<Output = Result<ResponsePacket, RpcError<TransportErrorKind>>> + Send>>
The future response value.
Auto Trait Implementations§
impl Freeze for HftTransport
impl !RefUnwindSafe for HftTransport
impl Send for HftTransport
impl Sync for HftTransport
impl Unpin for HftTransport
impl UnsafeUnpin for HftTransport
impl !UnwindSafe for HftTransport
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoBoxTransport for T
impl<T> IntoBoxTransport for T
Source§fn into_box_transport(self) -> BoxTransport
fn into_box_transport(self) -> BoxTransport
Boxes the transport.
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>
Converts
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>
Converts
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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T, Request> ServiceExt<Request> for T
impl<T, Request> ServiceExt<Request> for T
Source§fn ready(&mut self) -> Ready<'_, Self, Request>where
Self: Sized,
fn ready(&mut self) -> Ready<'_, Self, Request>where
Self: Sized,
Yields a mutable reference to the service when it is ready to accept a request.
Source§fn ready_oneshot(self) -> ReadyOneshot<Self, Request>where
Self: Sized,
fn ready_oneshot(self) -> ReadyOneshot<Self, Request>where
Self: Sized,
Yields the service when it is ready to accept a request.
Source§fn oneshot(self, req: Request) -> Oneshot<Self, Request>where
Self: Sized,
fn oneshot(self, req: Request) -> Oneshot<Self, Request>where
Self: Sized,
Consume this
Service, calling it with the provided request once it is ready.Source§fn and_then<F>(self, f: F) -> AndThen<Self, F>
fn and_then<F>(self, f: F) -> AndThen<Self, F>
Executes a new future after this service’s future resolves. This does
not alter the behaviour of the
poll_ready method. Read moreSource§fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
Maps this service’s response value to a different value. This does not
alter the behaviour of the
poll_ready method. Read moreSource§fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
Maps this service’s error value to a different value. This does not
alter the behaviour of the
poll_ready method. Read moreSource§fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
Maps this service’s result type (
Result<Self::Response, Self::Error>)
to a different value, regardless of whether the future succeeds or
fails. Read moreSource§fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>
fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>
Composes a function in front of the service. Read more
Source§fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
Composes an asynchronous function after this service. Read more
Source§fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
Composes a function that transforms futures produced by the service. Read more
Source§impl<T> Transport for Twhere
T: Service<RequestPacket, Response = ResponsePacket, Error = RpcError<TransportErrorKind>, Future = Pin<Box<dyn Future<Output = Result<ResponsePacket, RpcError<TransportErrorKind>>> + Send>>> + Send + Sync + 'static,
impl<T> Transport for Twhere
T: Service<RequestPacket, Response = ResponsePacket, Error = RpcError<TransportErrorKind>, Future = Pin<Box<dyn Future<Output = Result<ResponsePacket, RpcError<TransportErrorKind>>> + Send>>> + Send + Sync + 'static,
Source§fn boxed(self) -> BoxTransportwhere
Self: IntoBoxTransport,
fn boxed(self) -> BoxTransportwhere
Self: IntoBoxTransport,
Convert this transport into a boxed trait object.
Source§fn as_boxed(&self) -> BoxTransportwhere
Self: IntoBoxTransport,
fn as_boxed(&self) -> BoxTransportwhere
Self: IntoBoxTransport,
Make a boxed trait object by cloning this transport.