Struct ThrottleBudget
pub struct ThrottleBudget { /* private fields */ }net only.Expand description
The StreamGate that throttles one direction of a single IO.
A ThrottledIo holds one per direction of a byte stream, and
ThrottleGates opens one per stream direction of a multiplexed
connection.
Must be polled within a tokio runtime context.
Implementations§
§impl ThrottleBudget
impl ThrottleBudget
pub fn new(mode: ThrottleMode) -> ThrottleBudget
pub fn new(mode: ThrottleMode) -> ThrottleBudget
Create a ThrottleBudget spending from mode, with the default grant quantum.
pub fn maybe_with_quantum(self, quantum: Option<u64>) -> ThrottleBudget
pub fn maybe_with_quantum(self, quantum: Option<u64>) -> ThrottleBudget
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 ThrottleBudget
pub fn maybe_set_quantum(&mut self, quantum: Option<u64>) -> &mut ThrottleBudget
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) -> ThrottleBudget
pub fn with_quantum(self, quantum: u64) -> ThrottleBudget
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 ThrottleBudget
pub fn set_quantum(&mut self, quantum: u64) -> &mut ThrottleBudget
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) -> ThrottleBudget
pub fn without_quantum(self) -> ThrottleBudget
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 ThrottleBudget
pub fn unset_quantum(&mut self) -> &mut ThrottleBudget
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 Debug for ThrottleBudget
impl Debug for ThrottleBudget
§impl StreamGate for ThrottleBudget
impl StreamGate for ThrottleBudget
Auto Trait Implementations§
impl !RefUnwindSafe for ThrottleBudget
impl !UnwindSafe for ThrottleBudget
impl Freeze for ThrottleBudget
impl Send for ThrottleBudget
impl Sync for ThrottleBudget
impl Unpin for ThrottleBudget
impl UnsafeUnpin for ThrottleBudget
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
§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