Struct LazyProxyAddressLayer
pub struct LazyProxyAddressLayer { /* private fields */ }net only.Expand description
Lazily resolve and apply a proxy address to any input with extensions.
Existing routes are preserved by default, in which case the loader is not
consulted if a ProxyRoute or ProxyRoutes decision exists. Otherwise,
its result is cached and shared by every clone of the layer and service.
This is useful for environment configuration that may never be needed.
Implementations§
§impl LazyProxyAddressLayer
impl LazyProxyAddressLayer
pub fn new<F>(loader: F) -> LazyProxyAddressLayer
pub fn new<F>(loader: F) -> LazyProxyAddressLayer
Create a lazy layer backed by a synchronous, non-blocking loader.
The loader runs at most once, on the first request that does not already have a preserved route decision. Both success and failure are cached.
pub fn from_env_default() -> LazyProxyAddressLayer
pub fn from_env_default() -> LazyProxyAddressLayer
Lazily read and parse the http_proxy environment variable on the
first request without a preserved route.
Uppercase HTTP_PROXY is deliberately not accepted by default because
CGI derives it from an incoming Proxy header. Use
ProxyEnvLayer for curl-compatible HTTP, HTTPS, and all-protocol
environment selection.
pub fn from_env(key: impl Into<String>) -> LazyProxyAddressLayer
pub fn from_env(key: impl Into<String>) -> LazyProxyAddressLayer
Lazily read and parse a proxy address from the named environment variable on the first request without a preserved route.
pub fn with_load_error_sink(self, sink: impl ErrorSink) -> LazyProxyAddressLayer
pub fn with_load_error_sink(self, sink: impl ErrorSink) -> LazyProxyAddressLayer
Handle a loader error through an ErrorSink and continue without
selecting a proxy. By default loader errors reject the request.
The sink is invoked at most once because the handled result is cached and shared by every clone of this layer and its service.
pub fn set_load_error_sink(
&mut self,
sink: impl ErrorSink,
) -> &mut LazyProxyAddressLayer
pub fn set_load_error_sink( &mut self, sink: impl ErrorSink, ) -> &mut LazyProxyAddressLayer
Handle a loader error through an ErrorSink and continue without
selecting a proxy. By default loader errors reject the request.
The sink is invoked at most once because the handled result is cached and shared by every clone of this layer and its service.
pub fn with_overwrite(self, overwrite: bool) -> LazyProxyAddressLayer
pub fn with_overwrite(self, overwrite: bool) -> LazyProxyAddressLayer
Replace an existing ProxyRoute or ProxyRoutes decision.
Existing routes are preserved by default.
pub fn set_overwrite(&mut self, overwrite: bool) -> &mut LazyProxyAddressLayer
pub fn set_overwrite(&mut self, overwrite: bool) -> &mut LazyProxyAddressLayer
Replace an existing ProxyRoute or ProxyRoutes decision.
Existing routes are preserved by default.
Trait Implementations§
§impl Clone for LazyProxyAddressLayer
impl Clone for LazyProxyAddressLayer
§fn clone(&self) -> LazyProxyAddressLayer
fn clone(&self) -> LazyProxyAddressLayer
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 LazyProxyAddressLayer
impl Debug for LazyProxyAddressLayer
§impl<S> Layer<S> for LazyProxyAddressLayer
impl<S> Layer<S> for LazyProxyAddressLayer
§type Service = LazyProxyAddressService<S>
type Service = LazyProxyAddressService<S>
§fn layer(&self, inner: S) -> <LazyProxyAddressLayer as Layer<S>>::Service
fn layer(&self, inner: S) -> <LazyProxyAddressLayer as Layer<S>>::Service
§fn into_layer(self, inner: S) -> <LazyProxyAddressLayer as Layer<S>>::Service
fn into_layer(self, inner: S) -> <LazyProxyAddressLayer as Layer<S>>::Service
layer but consuming self after the service was created. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for LazyProxyAddressLayer
impl !UnwindSafe for LazyProxyAddressLayer
impl Freeze for LazyProxyAddressLayer
impl Send for LazyProxyAddressLayer
impl Sync for LazyProxyAddressLayer
impl Unpin for LazyProxyAddressLayer
impl UnsafeUnpin for LazyProxyAddressLayer
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> 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> 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