pub struct ArcClient(/* private fields */);Expand description
An owned transport shared through an Arc.
The named type keeps the trait object’s lifetime out of generic async
return types. This lets those futures retain their native Send bound.
Clones share the same transport allocation and connection state.
Trait Implementations§
Source§impl Client for ArcClient
impl Client for ArcClient
Source§fn host(&self) -> &str
fn host(&self) -> &str
The URL this transport dials — its connection identity. Two clients
share process-level connection state (the XIP-83 shared bidi wire)
exactly when their hosts match, so this must name where the bytes
actually go: a client behind a proxy reports the proxy’s URL, keeping
it a separate failure domain from a direct client to the same backend.
Source§fn has_credential_source(&self) -> bool
fn has_credential_source(&self) -> bool
Whether this transport stack was given a way to obtain a credential —
an auth callback or an auth handle (CFG-062). A stack with no auth
middleware in it reports
false, and build refuses a deployment that
requires authentication.fn request<'life0, 'async_trait>(
&'life0 self,
request: Builder,
path: PathAndQuery,
body: Bytes,
) -> Pin<Box<dyn Future<Output = Result<Response<Bytes>, ApiClientError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream<'life0, 'async_trait>(
&'life0 self,
request: Builder,
path: PathAndQuery,
body: Bytes,
) -> Pin<Box<dyn Future<Output = Result<Response<BytesStream>, ApiClientError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn bidi_stream<'life0, 'async_trait>(
&'life0 self,
request: Builder,
path: PathAndQuery,
body: BoxDynStream<'static, Bytes>,
) -> Pin<Box<dyn Future<Output = Result<Response<BytesStream>, ApiClientError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bidi_stream<'life0, 'async_trait>(
&'life0 self,
request: Builder,
path: PathAndQuery,
body: BoxDynStream<'static, Bytes>,
) -> Pin<Box<dyn Future<Output = Result<Response<BytesStream>, ApiClientError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Open a bidirectional stream (XIP-83).
body is the outbound stream of
encoded protobuf messages (one Bytes item per message); the response
carries the inbound message stream. Transports without full-duplex
support (e.g. gRPC-Web in the browser) keep this default and error.Source§fn fake_stream(&self) -> Response<BytesStream>
fn fake_stream(&self) -> Response<BytesStream>
start a “fake” stream that does not create a TCP connection and will always be pending
Auto Trait Implementations§
impl Freeze for ArcClient
impl !RefUnwindSafe for ArcClient
impl Send for ArcClient
impl Sync for ArcClient
impl Unpin for ArcClient
impl UnsafeUnpin for ArcClient
impl !UnwindSafe for ArcClient
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
Add an aggregate function filter Read more
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Add an aggregate function order Read more
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<C> ToBoxedClient for Cwhere
C: Client + IsConnectedCheck + 'static,
impl<C> ToBoxedClient for Cwhere
C: Client + IsConnectedCheck + 'static,
Source§impl<S, T> Upcast<T> for S
impl<S, T> Upcast<T> for S
§impl<T> WindowExpressionMethods for T
impl<T> WindowExpressionMethods for T
§fn over(self) -> Self::Outputwhere
Self: OverDsl,
fn over(self) -> Self::Outputwhere
Self: OverDsl,
Turn a function call into a window function call Read more
§fn window_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn window_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
Add a filter to the current window function Read more
§fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
Add a partition clause to the current window function Read more
§fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
Add a order clause to the current window function Read more