Struct ProxyRoutes
pub struct ProxyRoutes { /* private fields */ }net only.Expand description
Ordered proxy routes to try while establishing a client connection.
An empty route collection has the same meaning as a single
ProxyRoute::Direct route.
Each route can optionally carry route-specific Extensions. The
ProxyRoutesConnector installs those only
on that route’s isolated connection attempt. Collect (route, extensions)
pairs to attach them without exposing an entry wrapper in the public API.
Implementations§
§impl ProxyRoutes
impl ProxyRoutes
pub fn new(routes: impl IntoIterator<Item = ProxyRoute>) -> ProxyRoutes
pub fn new(routes: impl IntoIterator<Item = ProxyRoute>) -> ProxyRoutes
Create an ordered collection from the given proxy routes.
pub const fn with_overwrite(self, overwrite: bool) -> ProxyRoutes
pub const fn with_overwrite(self, overwrite: bool) -> ProxyRoutes
Allow this route collection to take precedence over an existing
singular ProxyRoute.
Overwriting is disabled by default.
pub const fn as_slice(&self) -> &[ProxyRoute]
pub const fn as_slice(&self) -> &[ProxyRoute]
Return the explicitly configured routes in their preferred order.
pub fn iter(&self) -> impl Iterator<Item = &ProxyRoute>
pub fn iter(&self) -> impl Iterator<Item = &ProxyRoute>
Iterate over the explicitly configured routes in preferred order.
pub fn route_extensions(&self, index: usize) -> Option<&Extensions>
pub fn route_extensions(&self, index: usize) -> Option<&Extensions>
Return the extensions attached to the route at index, when present.
Trait Implementations§
§impl Clone for ProxyRoutes
impl Clone for ProxyRoutes
§fn clone(&self) -> ProxyRoutes
fn clone(&self) -> ProxyRoutes
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for ProxyRoutes
impl Debug for ProxyRoutes
§impl Default for ProxyRoutes
impl Default for ProxyRoutes
§fn default() -> ProxyRoutes
fn default() -> ProxyRoutes
impl Extension for ProxyRoutes
§impl From<Box<[ProxyRoute]>> for ProxyRoutes
impl From<Box<[ProxyRoute]>> for ProxyRoutes
§fn from(value: Box<[ProxyRoute]>) -> ProxyRoutes
fn from(value: Box<[ProxyRoute]>) -> ProxyRoutes
§impl From<ProxyAddress> for ProxyRoutes
impl From<ProxyAddress> for ProxyRoutes
§fn from(value: ProxyAddress) -> ProxyRoutes
fn from(value: ProxyAddress) -> ProxyRoutes
§impl From<ProxyRoute> for ProxyRoutes
impl From<ProxyRoute> for ProxyRoutes
§fn from(value: ProxyRoute) -> ProxyRoutes
fn from(value: ProxyRoute) -> ProxyRoutes
§impl From<Vec<ProxyRoute>> for ProxyRoutes
impl From<Vec<ProxyRoute>> for ProxyRoutes
§fn from(value: Vec<ProxyRoute>) -> ProxyRoutes
fn from(value: Vec<ProxyRoute>) -> ProxyRoutes
§impl<E> FromIterator<(ProxyRoute, E)> for ProxyRoutes
Collect direct or proxied routes with optional route-specific extensions.
impl<E> FromIterator<(ProxyRoute, E)> for ProxyRoutes
Collect direct or proxied routes with optional route-specific extensions.
§fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = (ProxyRoute, E)>,
fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = (ProxyRoute, E)>,
§impl<T, E> FromIterator<(T, E)> for ProxyRoutes
Collect proxy-address-like values with optional route-specific extensions.
impl<T, E> FromIterator<(T, E)> for ProxyRoutes
Collect proxy-address-like values with optional route-specific extensions.
§fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = (T, E)>,
fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = (T, E)>,
§impl FromIterator<ProxyRoute> for ProxyRoutes
impl FromIterator<ProxyRoute> for ProxyRoutes
§fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = ProxyRoute>,
fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = ProxyRoute>,
§impl<T> FromIterator<T> for ProxyRouteswhere
T: Into<ProxyAddress>,
Collect proxy-address-like values into ordered proxy routes.
impl<T> FromIterator<T> for ProxyRouteswhere
T: Into<ProxyAddress>,
Collect proxy-address-like values into ordered proxy routes.
§fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = T>,
fn from_iter<I>(iter: I) -> ProxyRouteswhere
I: IntoIterator<Item = T>,
§impl<'a> IntoIterator for &'a ProxyRoutes
impl<'a> IntoIterator for &'a ProxyRoutes
§type Item = &'a ProxyRoute
type Item = &'a ProxyRoute
§type IntoIter = Iter<'a, ProxyRoute>
type IntoIter = Iter<'a, ProxyRoute>
§fn into_iter(self) -> <&'a ProxyRoutes as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a ProxyRoutes as IntoIterator>::IntoIter
impl NetExtension for ProxyRoutes
impl ProxyExtension for ProxyRoutes
Auto Trait Implementations§
impl Freeze for ProxyRoutes
impl RefUnwindSafe for ProxyRoutes
impl Send for ProxyRoutes
impl Sync for ProxyRoutes
impl Unpin for ProxyRoutes
impl UnsafeUnpin for ProxyRoutes
impl UnwindSafe for ProxyRoutes
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§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> ⓘ
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 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>
T in a rama_grpc::Request§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.