pub struct InMemoryCredentialsStore { /* private fields */ }Expand description
An in-memory CredentialsStore backed by an RwLock<HashMap>.
Suitable for single-process deployments. Credentials are lost when the process exits.
§Lock poisoning
If a thread panics while holding the lock, subsequent operations will
also panic (fail-fast) rather than silently returning None. This
surfaces bugs early instead of masking them.
Implementations§
Source§impl InMemoryCredentialsStore
impl InMemoryCredentialsStore
Sourcepub fn new() -> InMemoryCredentialsStore
pub fn new() -> InMemoryCredentialsStore
Creates an empty credential store.
Trait Implementations§
Source§impl CredentialsStore for InMemoryCredentialsStore
impl CredentialsStore for InMemoryCredentialsStore
Source§impl Debug for InMemoryCredentialsStore
impl Debug for InMemoryCredentialsStore
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Never panics, unlike the accessors below.
Those propagate lock poisoning deliberately, and that is right for
them: a credentials lookup that quietly returns None is a silent auth
downgrade. It is wrong here. Formatting is what runs while somebody
is diagnosing the first failure, frequently from a logging path, and a
Debug that panics replaces the diagnosis with a second failure — in a
release build of this workspace (panic = "abort"), with a process
abort.
Poisoning is reported rather than recovered from: a count read out of a map some writer panicked inside is not a fact worth printing as though it were one.
Source§impl Default for InMemoryCredentialsStore
impl Default for InMemoryCredentialsStore
Source§fn default() -> InMemoryCredentialsStore
fn default() -> InMemoryCredentialsStore
Auto Trait Implementations§
impl !Freeze for InMemoryCredentialsStore
impl RefUnwindSafe for InMemoryCredentialsStore
impl Send for InMemoryCredentialsStore
impl Sync for InMemoryCredentialsStore
impl Unpin for InMemoryCredentialsStore
impl UnsafeUnpin for InMemoryCredentialsStore
impl UnwindSafe for InMemoryCredentialsStore
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
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