pub struct SyncRuntimeConfig<T = StoredConfig> { /* private fields */ }Expand description
Synchronous runtime configuration cache.
This type is intended for hot read paths where configuration is loaded from storage asynchronously at the boundary, but request handlers, middleware, policy builders, and task registries need cheap synchronous reads from an in-memory snapshot.
Implementations§
Source§impl<T> SyncRuntimeConfig<T>where
T: RuntimeConfigRecord,
impl<T> SyncRuntimeConfig<T>where
T: RuntimeConfigRecord,
Sourcepub fn replace(&self, configs: Vec<T>) -> Vec<RuntimeConfigChange<T>>
pub fn replace(&self, configs: Vec<T>) -> Vec<RuntimeConfigChange<T>>
Replaces the snapshot from a full record list and returns the diff.
Restart-only rows keep their in-process record when the key already
exists (value and flags stay until restart), mirroring Self::apply;
the diff does not report those keys as changed. Removals are applied
immediately, matching Self::remove.
Sourcepub fn snapshot(&self) -> SyncConfigSnapshot<T>
pub fn snapshot(&self) -> SyncConfigSnapshot<T>
Returns a cloned snapshot for lock-free derived-state processing.
Sourcepub fn get_string_or(&self, key: &str, default: &str) -> String
pub fn get_string_or(&self, key: &str, default: &str) -> String
Returns a string value or default.
Sourcepub fn get_bool_or(&self, key: &str, default: bool) -> bool
pub fn get_bool_or(&self, key: &str, default: bool) -> bool
Returns a bool value or default.
Sourcepub fn get_i64_or(&self, key: &str, default: i64) -> i64
pub fn get_i64_or(&self, key: &str, default: i64) -> i64
Returns an i64 value or default.
Sourcepub fn get_u64_or(&self, key: &str, default: u64) -> u64
pub fn get_u64_or(&self, key: &str, default: u64) -> u64
Returns a u64 value or default.
Sourcepub fn apply(&self, config: T) -> Option<RuntimeConfigChange<T>>
pub fn apply(&self, config: T) -> Option<RuntimeConfigChange<T>>
Applies one row to the snapshot.
If the incoming row requires restart and the key already exists, the update is ignored to preserve the in-process value until restart.
Sourcepub fn remove(&self, key: &str) -> Option<RuntimeConfigChange<T>>
pub fn remove(&self, key: &str) -> Option<RuntimeConfigChange<T>>
Removes one key from the snapshot.
Trait Implementations§
Source§impl<T: Debug> Debug for SyncRuntimeConfig<T>
impl<T: Debug> Debug for SyncRuntimeConfig<T>
Source§impl<T: Default> Default for SyncRuntimeConfig<T>
impl<T: Default> Default for SyncRuntimeConfig<T>
Source§fn default() -> SyncRuntimeConfig<T>
fn default() -> SyncRuntimeConfig<T>
Auto Trait Implementations§
impl<T = StoredConfig> !Freeze for SyncRuntimeConfig<T>
impl<T> RefUnwindSafe for SyncRuntimeConfig<T>
impl<T> Send for SyncRuntimeConfig<T>where
T: Send,
impl<T> Sync for SyncRuntimeConfig<T>
impl<T> Unpin for SyncRuntimeConfig<T>where
T: Unpin,
impl<T> UnsafeUnpin for SyncRuntimeConfig<T>
impl<T> UnwindSafe for SyncRuntimeConfig<T>
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<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