Struct OutgoingThrottleLayer
pub struct OutgoingThrottleLayer { /* private fields */ }net only.Expand description
A Layer that wraps a Service’s output IO Stream with
a byte-rate throttle. See ThrottledIo.
Directions are relative to the established connection: read
throttles ingress from the upstream, write paces egress toward it.
Implementations§
§impl OutgoingThrottleLayer
impl OutgoingThrottleLayer
pub fn symmetric(mode: ThrottleMode) -> OutgoingThrottleLayer
pub fn symmetric(mode: ThrottleMode) -> OutgoingThrottleLayer
Create a new OutgoingThrottleLayer throttling both directions
with the given ThrottleMode.
ThrottleMode::PerConn gives each direction its own
(independent) bucket; ThrottleMode::Shared spends both
directions from the same aggregate budget.
pub fn read_only(mode: ThrottleMode) -> OutgoingThrottleLayer
pub fn read_only(mode: ThrottleMode) -> OutgoingThrottleLayer
Create a new OutgoingThrottleLayer throttling only the read
(ingress from upstream) direction.
pub fn write_only(mode: ThrottleMode) -> OutgoingThrottleLayer
pub fn write_only(mode: ThrottleMode) -> OutgoingThrottleLayer
Create a new OutgoingThrottleLayer throttling only the write
(egress to upstream) direction.
pub fn new(
read: Option<ThrottleMode>,
write: Option<ThrottleMode>,
) -> OutgoingThrottleLayer
pub fn new( read: Option<ThrottleMode>, write: Option<ThrottleMode>, ) -> OutgoingThrottleLayer
Create a new OutgoingThrottleLayer with per-direction modes.
pub fn maybe_with_quantum(self, quantum: Option<u64>) -> OutgoingThrottleLayer
pub fn maybe_with_quantum(self, quantum: Option<u64>) -> OutgoingThrottleLayer
Override the grant quantum in bytes: the budget reserved per IO operation (clamped to the burst capacity; defaults to a tenth of a period worth of bytes, at most 16 KiB).
pub fn maybe_set_quantum(
&mut self,
quantum: Option<u64>,
) -> &mut OutgoingThrottleLayer
pub fn maybe_set_quantum( &mut self, quantum: Option<u64>, ) -> &mut OutgoingThrottleLayer
Override the grant quantum in bytes: the budget reserved per IO operation (clamped to the burst capacity; defaults to a tenth of a period worth of bytes, at most 16 KiB).
pub fn with_quantum(self, quantum: u64) -> OutgoingThrottleLayer
pub fn with_quantum(self, quantum: u64) -> OutgoingThrottleLayer
Override the grant quantum in bytes: the budget reserved per IO operation (clamped to the burst capacity; defaults to a tenth of a period worth of bytes, at most 16 KiB).
pub fn set_quantum(&mut self, quantum: u64) -> &mut OutgoingThrottleLayer
pub fn set_quantum(&mut self, quantum: u64) -> &mut OutgoingThrottleLayer
Override the grant quantum in bytes: the budget reserved per IO operation (clamped to the burst capacity; defaults to a tenth of a period worth of bytes, at most 16 KiB).
pub fn without_quantum(self) -> OutgoingThrottleLayer
pub fn without_quantum(self) -> OutgoingThrottleLayer
Override the grant quantum in bytes: the budget reserved per IO operation (clamped to the burst capacity; defaults to a tenth of a period worth of bytes, at most 16 KiB).
pub fn unset_quantum(&mut self) -> &mut OutgoingThrottleLayer
pub fn unset_quantum(&mut self) -> &mut OutgoingThrottleLayer
Override the grant quantum in bytes: the budget reserved per IO operation (clamped to the burst capacity; defaults to a tenth of a period worth of bytes, at most 16 KiB).
Trait Implementations§
§impl Clone for OutgoingThrottleLayer
impl Clone for OutgoingThrottleLayer
§fn clone(&self) -> OutgoingThrottleLayer
fn clone(&self) -> OutgoingThrottleLayer
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 OutgoingThrottleLayer
impl Debug for OutgoingThrottleLayer
§impl Default for OutgoingThrottleLayer
impl Default for OutgoingThrottleLayer
§fn default() -> OutgoingThrottleLayer
fn default() -> OutgoingThrottleLayer
§impl<S> Layer<S> for OutgoingThrottleLayer
impl<S> Layer<S> for OutgoingThrottleLayer
§type Service = OutgoingThrottleService<S>
type Service = OutgoingThrottleService<S>
§fn layer(&self, inner: S) -> <OutgoingThrottleLayer as Layer<S>>::Service
fn layer(&self, inner: S) -> <OutgoingThrottleLayer as Layer<S>>::Service
§fn into_layer(self, inner: S) -> Self::Service
fn into_layer(self, inner: S) -> Self::Service
layer but consuming self after the service was created. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for OutgoingThrottleLayer
impl !UnwindSafe for OutgoingThrottleLayer
impl Freeze for OutgoingThrottleLayer
impl Send for OutgoingThrottleLayer
impl Sync for OutgoingThrottleLayer
impl Unpin for OutgoingThrottleLayer
impl UnsafeUnpin for OutgoingThrottleLayer
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