pub enum ResolverError {
AccountNotFound(String),
EnvVarMissing(String),
SecretsManagerUnsupported,
PlaintextDevDisabledInRelease,
OAuthConfigDirNotASecret,
KeychainError(String),
Storage(StoreError),
}Expand description
Errors specific to the resolver. Every variant is recoverable (the spawn proceeds with whatever env vars resolved successfully) — they exist for tracing visibility, not control flow.
Variants§
AccountNotFound(String)
EnvVarMissing(String)
SecretsManagerUnsupported
PlaintextDevDisabledInRelease
OAuthConfigDirNotASecret
OAuthConfigDir is a filesystem pointer, not a secret string —
resolve_secret cannot turn it into a credential value because
the credential lives in a CLI-managed token file inside the dir.
Oauth-class providers must be routed through the config-dir
injection path that PR B adds to inject_identity_env. Seeing
this error from resolve_secret means the caller forgot to
dispatch by provider class first.
KeychainError(String)
The OS keychain read failed (no entry, locked store, or no Secret
Service agent). Trust Center API keys (SecretRef::Keychain) live
in the OS keychain; this surfaces a resolution failure at spawn.
Storage(StoreError)
Trait Implementations§
Source§impl Debug for ResolverError
impl Debug for ResolverError
Source§impl Display for ResolverError
impl Display for ResolverError
Source§impl Error for ResolverError
impl Error for ResolverError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<StoreError> for ResolverError
impl From<StoreError> for ResolverError
Source§fn from(source: StoreError) -> Self
fn from(source: StoreError) -> Self
Auto Trait Implementations§
impl Freeze for ResolverError
impl !RefUnwindSafe for ResolverError
impl Send for ResolverError
impl Sync for ResolverError
impl Unpin for ResolverError
impl !UnwindSafe for ResolverError
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for 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