use thiserror::Error; #[derive(Debug, Error)] pub enum SecretsError { #[error("secret '{key}' not found in source '{source_name}'")] NotFound { key: String, source_name: String }, #[error("secret '{key}' not found in any configured source")] NotFoundInAnySource { key: String }, #[error("secrets source '{source_name}' unavailable: {reason}")] SourceUnavailable { source_name: String, reason: String }, #[error("required secrets missing at startup: {keys:?}")] MissingRequired { keys: Vec }, #[error("secret type conversion failed for key '{key}': {reason}")] TypeError { key: String, reason: String }, }