#[non_exhaustive]pub struct PerTenantConfig {
pub default: TenantLimits,
pub overrides: HashMap<String, TenantLimits>,
}Expand description
Per-tenant configuration for timeouts, capacity limits, and executor selection.
A default TenantLimits plus per-tenant overrides. Use
get to resolve the effective limits for a tenant — it returns
the tenant-specific overrides if present, or falls back to the default.
Resolution is the whole of what this type does; nothing in the request path enforces what it resolves. See the module documentation.
#[non_exhaustive]: build it with Default and the with_* setters,
which cover every field; a struct literal is not available outside this
crate, so a field added later does not break callers.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.default: TenantLimitsDefault configuration for tenants without specific overrides.
overrides: HashMap<String, TenantLimits>Per-tenant overrides keyed by tenant ID.
Implementations§
Source§impl PerTenantConfig
impl PerTenantConfig
Sourcepub fn builder() -> PerTenantConfigBuilder
pub fn builder() -> PerTenantConfigBuilder
Returns a builder for constructing PerTenantConfig.
Sourcepub const fn with_default(self, limits: TenantLimits) -> PerTenantConfig
pub const fn with_default(self, limits: TenantLimits) -> PerTenantConfig
Sets the limits applied to every tenant without an override.
Sourcepub fn with_overrides(
self,
overrides: HashMap<String, TenantLimits>,
) -> PerTenantConfig
pub fn with_overrides( self, overrides: HashMap<String, TenantLimits>, ) -> PerTenantConfig
Replaces the per-tenant overrides. with_override
adds one.
Sourcepub fn with_override(
self,
tenant_id: impl Into<String>,
limits: TenantLimits,
) -> PerTenantConfig
pub fn with_override( self, tenant_id: impl Into<String>, limits: TenantLimits, ) -> PerTenantConfig
Adds a per-tenant override.
Sourcepub fn get(&self, tenant_id: &str) -> &TenantLimits
pub fn get(&self, tenant_id: &str) -> &TenantLimits
Returns the effective limits for the given tenant.
If the tenant has a specific override, that is returned. Otherwise the default limits are returned.
Trait Implementations§
Source§impl Clone for PerTenantConfig
impl Clone for PerTenantConfig
Source§fn clone(&self) -> PerTenantConfig
fn clone(&self) -> PerTenantConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PerTenantConfig
impl Debug for PerTenantConfig
Source§impl Default for PerTenantConfig
impl Default for PerTenantConfig
Source§fn default() -> PerTenantConfig
fn default() -> PerTenantConfig
Auto Trait Implementations§
impl Freeze for PerTenantConfig
impl RefUnwindSafe for PerTenantConfig
impl Send for PerTenantConfig
impl Sync for PerTenantConfig
impl Unpin for PerTenantConfig
impl UnsafeUnpin for PerTenantConfig
impl UnwindSafe for PerTenantConfig
Blanket Implementations§
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,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request