use crate::ProviderRole;
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
pub enum ProviderError {
#[error("provider factory already registered for {role:?}: {provider_id}")]
DuplicateFactory {
role: ProviderRole,
provider_id: String,
},
#[error("provider is unavailable for {role:?}: {provider_id}")]
Unavailable {
role: ProviderRole,
provider_id: String,
},
#[error("invalid provider configuration: {0}")]
InvalidConfiguration(String),
#[error("provider secret is unavailable: {0}")]
SecretUnavailable(String),
#[error("provider initialization failed: {0}")]
Initialization(String),
}
pub type ProviderResult<T> = Result<T, ProviderError>;