Struct PacProxyRoutesLayer
pub struct PacProxyRoutesLayer { /* private fields */ }js and pac and std only.Expand description
Inserts the ProxyRoutes a PAC script selects for each request, for
a ProxyRoutesConnector
further down the stack to connect through.
A request that already carries a ProxyRoute or ProxyRoutes is left
alone and the script is not consulted at all, unless
overwrite says otherwise. Each redirect hop and
retry attempt gets its own extension store, so a verdict left on an earlier
one is not in scope here and every hop is routed for its own target.
A verdict publishes at most DEFAULT_PAC_MAX_ROUTES routes, so a
script cannot decide that one request is worth an unbounded number of
connect attempts — see max_routes.
Implementations§
§impl PacProxyRoutesLayer
impl PacProxyRoutesLayer
pub fn new(resolver: Arc<PacResolver>) -> PacProxyRoutesLayer
pub fn new(resolver: Arc<PacResolver>) -> PacProxyRoutesLayer
Route through what the given resolver’s script selects.
pub fn with_failure_policy(
self,
failure: PacFailurePolicy,
) -> PacProxyRoutesLayer
pub fn with_failure_policy( self, failure: PacFailurePolicy, ) -> PacProxyRoutesLayer
What to route through when the script cannot be consulted
(defaults to PacFailurePolicy::Fail).
pub fn set_failure_policy(
&mut self,
failure: PacFailurePolicy,
) -> &mut PacProxyRoutesLayer
pub fn set_failure_policy( &mut self, failure: PacFailurePolicy, ) -> &mut PacProxyRoutesLayer
What to route through when the script cannot be consulted
(defaults to PacFailurePolicy::Fail).
pub fn with_overwrite(self, overwrite: bool) -> PacProxyRoutesLayer
pub fn with_overwrite(self, overwrite: bool) -> PacProxyRoutesLayer
Consult the script even when the request already carries a
route, and let its verdict win (defaults to false).
pub fn set_overwrite(&mut self, overwrite: bool) -> &mut PacProxyRoutesLayer
pub fn set_overwrite(&mut self, overwrite: bool) -> &mut PacProxyRoutesLayer
Consult the script even when the request already carries a
route, and let its verdict win (defaults to false).
pub fn maybe_with_max_routes(
self,
max_routes: Option<NonZero<usize>>,
) -> PacProxyRoutesLayer
pub fn maybe_with_max_routes( self, max_routes: Option<NonZero<usize>>, ) -> PacProxyRoutesLayer
How many routes a verdict may publish; the rest are dropped
(defaults to DEFAULT_PAC_MAX_ROUTES).
Every published route is a connect attempt the connector may
make for a single request. Use
without_max_routes to trust the
script with an unbounded list.
pub fn maybe_set_max_routes(
&mut self,
max_routes: Option<NonZero<usize>>,
) -> &mut PacProxyRoutesLayer
pub fn maybe_set_max_routes( &mut self, max_routes: Option<NonZero<usize>>, ) -> &mut PacProxyRoutesLayer
How many routes a verdict may publish; the rest are dropped
(defaults to DEFAULT_PAC_MAX_ROUTES).
Every published route is a connect attempt the connector may
make for a single request. Use
without_max_routes to trust the
script with an unbounded list.
pub fn with_max_routes(self, max_routes: NonZero<usize>) -> PacProxyRoutesLayer
pub fn with_max_routes(self, max_routes: NonZero<usize>) -> PacProxyRoutesLayer
How many routes a verdict may publish; the rest are dropped
(defaults to DEFAULT_PAC_MAX_ROUTES).
Every published route is a connect attempt the connector may
make for a single request. Use
without_max_routes to trust the
script with an unbounded list.
pub fn set_max_routes(
&mut self,
max_routes: NonZero<usize>,
) -> &mut PacProxyRoutesLayer
pub fn set_max_routes( &mut self, max_routes: NonZero<usize>, ) -> &mut PacProxyRoutesLayer
How many routes a verdict may publish; the rest are dropped
(defaults to DEFAULT_PAC_MAX_ROUTES).
Every published route is a connect attempt the connector may
make for a single request. Use
without_max_routes to trust the
script with an unbounded list.
pub fn without_max_routes(self) -> PacProxyRoutesLayer
pub fn without_max_routes(self) -> PacProxyRoutesLayer
How many routes a verdict may publish; the rest are dropped
(defaults to DEFAULT_PAC_MAX_ROUTES).
Every published route is a connect attempt the connector may
make for a single request. Use
without_max_routes to trust the
script with an unbounded list.
pub fn unset_max_routes(&mut self) -> &mut PacProxyRoutesLayer
pub fn unset_max_routes(&mut self) -> &mut PacProxyRoutesLayer
How many routes a verdict may publish; the rest are dropped
(defaults to DEFAULT_PAC_MAX_ROUTES).
Every published route is a connect attempt the connector may
make for a single request. Use
without_max_routes to trust the
script with an unbounded list.
Trait Implementations§
§impl Clone for PacProxyRoutesLayer
impl Clone for PacProxyRoutesLayer
§fn clone(&self) -> PacProxyRoutesLayer
fn clone(&self) -> PacProxyRoutesLayer
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 PacProxyRoutesLayer
impl Debug for PacProxyRoutesLayer
§impl<S> Layer<S> for PacProxyRoutesLayer
impl<S> Layer<S> for PacProxyRoutesLayer
§type Service = PacProxyRoutesService<S>
type Service = PacProxyRoutesService<S>
§fn layer(&self, inner: S) -> <PacProxyRoutesLayer as Layer<S>>::Service
fn layer(&self, inner: S) -> <PacProxyRoutesLayer as Layer<S>>::Service
§fn into_layer(self, inner: S) -> <PacProxyRoutesLayer as Layer<S>>::Service
fn into_layer(self, inner: S) -> <PacProxyRoutesLayer as Layer<S>>::Service
layer but consuming self after the service was created. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for PacProxyRoutesLayer
impl !UnwindSafe for PacProxyRoutesLayer
impl Freeze for PacProxyRoutesLayer
impl Send for PacProxyRoutesLayer
impl Sync for PacProxyRoutesLayer
impl Unpin for PacProxyRoutesLayer
impl UnsafeUnpin for PacProxyRoutesLayer
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