Struct mz_secrets::cache::CachingSecretsReader
source · pub struct CachingSecretsReader {
inner: Arc<dyn SecretsReader>,
cache: Arc<RwLock<BTreeMap<CatalogItemId, CacheItem>>>,
policy: Arc<CachingParameters>,
}
Fields§
§inner: Arc<dyn SecretsReader>
The underlying secrets, source of truth.
cache: Arc<RwLock<BTreeMap<CatalogItemId, CacheItem>>>
In-memory cache, not having a size limit or eviction policy is okay because we limit users to 100 secrets, which should not be a problem to store in-memory.
policy: Arc<CachingParameters>
Caching policy, can change at runtime, e.g. via LaunchDarkly.
Implementations§
source§impl CachingSecretsReader
impl CachingSecretsReader
pub fn new(reader: Arc<dyn SecretsReader>) -> Self
pub fn set_policy(&self, policy: CachingPolicy)
sourcefn enable_caching(&self) -> bool
fn enable_caching(&self) -> bool
Enables caching, returning whether we were previously enabled.
sourcefn disable_caching(&self) -> bool
fn disable_caching(&self) -> bool
Disables caching, returning whether we were previously enabled.
Trait Implementations§
source§impl Clone for CachingSecretsReader
impl Clone for CachingSecretsReader
source§fn clone(&self) -> CachingSecretsReader
fn clone(&self) -> CachingSecretsReader
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CachingSecretsReader
impl Debug for CachingSecretsReader
source§impl SecretsReader for CachingSecretsReader
impl SecretsReader for CachingSecretsReader
Auto Trait Implementations§
impl Freeze for CachingSecretsReader
impl !RefUnwindSafe for CachingSecretsReader
impl Send for CachingSecretsReader
impl Sync for CachingSecretsReader
impl Unpin for CachingSecretsReader
impl !UnwindSafe for CachingSecretsReader
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.