Struct PrincipalBudget
pub struct PrincipalBudget { /* private fields */ }masque only.Expand description
What all the tunnels of one principal may move together
(ConnectUdpLimits::with_principal_budget).
Every datagram a tunnel is charged is charged to its principal first, at the same cost; a datagram the principal’s budget refuses is dropped. The principal’s rates and quota outlive its tunnels: a principal is only forgotten once its rates would be full again and its quota window has ended, so closing and reopening tunnels never restores budget early.
Implementations§
§impl PrincipalBudget
impl PrincipalBudget
pub const fn new() -> PrincipalBudget
pub const fn new() -> PrincipalBudget
No rates or quota.
pub fn maybe_with_to_target(self, rate: Option<DatagramRate>) -> PrincipalBudget
pub fn maybe_with_to_target(self, rate: Option<DatagramRate>) -> PrincipalBudget
The rate of datagrams from the principal’s clients to their targets.
pub fn maybe_set_to_target(
&mut self,
rate: Option<DatagramRate>,
) -> &mut PrincipalBudget
pub fn maybe_set_to_target( &mut self, rate: Option<DatagramRate>, ) -> &mut PrincipalBudget
The rate of datagrams from the principal’s clients to their targets.
pub fn with_to_target(self, rate: DatagramRate) -> PrincipalBudget
pub fn with_to_target(self, rate: DatagramRate) -> PrincipalBudget
The rate of datagrams from the principal’s clients to their targets.
pub fn set_to_target(&mut self, rate: DatagramRate) -> &mut PrincipalBudget
pub fn set_to_target(&mut self, rate: DatagramRate) -> &mut PrincipalBudget
The rate of datagrams from the principal’s clients to their targets.
pub fn without_to_target(self) -> PrincipalBudget
pub fn without_to_target(self) -> PrincipalBudget
The rate of datagrams from the principal’s clients to their targets.
pub fn unset_to_target(&mut self) -> &mut PrincipalBudget
pub fn unset_to_target(&mut self) -> &mut PrincipalBudget
The rate of datagrams from the principal’s clients to their targets.
pub fn maybe_with_to_client(self, rate: Option<DatagramRate>) -> PrincipalBudget
pub fn maybe_with_to_client(self, rate: Option<DatagramRate>) -> PrincipalBudget
The rate of datagrams from the targets to the principal’s clients.
pub fn maybe_set_to_client(
&mut self,
rate: Option<DatagramRate>,
) -> &mut PrincipalBudget
pub fn maybe_set_to_client( &mut self, rate: Option<DatagramRate>, ) -> &mut PrincipalBudget
The rate of datagrams from the targets to the principal’s clients.
pub fn with_to_client(self, rate: DatagramRate) -> PrincipalBudget
pub fn with_to_client(self, rate: DatagramRate) -> PrincipalBudget
The rate of datagrams from the targets to the principal’s clients.
pub fn set_to_client(&mut self, rate: DatagramRate) -> &mut PrincipalBudget
pub fn set_to_client(&mut self, rate: DatagramRate) -> &mut PrincipalBudget
The rate of datagrams from the targets to the principal’s clients.
pub fn without_to_client(self) -> PrincipalBudget
pub fn without_to_client(self) -> PrincipalBudget
The rate of datagrams from the targets to the principal’s clients.
pub fn unset_to_client(&mut self) -> &mut PrincipalBudget
pub fn unset_to_client(&mut self) -> &mut PrincipalBudget
The rate of datagrams from the targets to the principal’s clients.
pub fn with_quota(self, bytes: u64, window: Duration) -> PrincipalBudget
pub fn with_quota(self, bytes: u64, window: Duration) -> PrincipalBudget
The most bytes, both ways together, the principal is charged per window, which
starts at its first charge. Only what the rates admitted counts.
pub fn set_quota(
&mut self,
bytes: u64,
window: Duration,
) -> &mut PrincipalBudget
pub fn set_quota( &mut self, bytes: u64, window: Duration, ) -> &mut PrincipalBudget
The most bytes, both ways together, the principal is charged per window, which
starts at its first charge. Only what the rates admitted counts.
Trait Implementations§
§impl Clone for PrincipalBudget
impl Clone for PrincipalBudget
§fn clone(&self) -> PrincipalBudget
fn clone(&self) -> PrincipalBudget
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PrincipalBudget
§impl Debug for PrincipalBudget
impl Debug for PrincipalBudget
§impl Default for PrincipalBudget
impl Default for PrincipalBudget
§fn default() -> PrincipalBudget
fn default() -> PrincipalBudget
impl Eq for PrincipalBudget
§impl PartialEq for PrincipalBudget
impl PartialEq for PrincipalBudget
impl StructuralPartialEq for PrincipalBudget
Auto Trait Implementations§
impl Freeze for PrincipalBudget
impl RefUnwindSafe for PrincipalBudget
impl Send for PrincipalBudget
impl Sync for PrincipalBudget
impl Unpin for PrincipalBudget
impl UnsafeUnpin for PrincipalBudget
impl UnwindSafe for PrincipalBudget
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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