fraiseql_core/security/kms/
error.rs1use std::fmt;
4
5#[derive(Debug, Clone)]
7#[non_exhaustive]
8pub enum KmsError {
9 KeyNotFound {
11 key_id: String,
13 },
14 EncryptionFailed {
16 message: String,
18 },
19 DecryptionFailed {
21 message: String,
23 },
24 RotationFailed {
26 message: String,
28 },
29 ProviderConnectionError {
31 message: String,
33 },
34 InvalidConfiguration {
36 message: String,
38 },
39 SerializationError {
41 message: String,
43 },
44}
45
46impl fmt::Display for KmsError {
47 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
48 match self {
49 Self::KeyNotFound { key_id } => write!(f, "Key not found: {}", key_id),
50 Self::EncryptionFailed { message } => write!(f, "Encryption failed: {}", message),
51 Self::DecryptionFailed { message } => write!(f, "Decryption failed: {}", message),
52 Self::RotationFailed { message } => write!(f, "Key rotation failed: {}", message),
53 Self::ProviderConnectionError { message } => {
54 write!(f, "Provider connection error: {}", message)
55 },
56 Self::InvalidConfiguration { message } => {
57 write!(f, "Invalid configuration: {}", message)
58 },
59 Self::SerializationError { message } => {
60 write!(f, "Serialization error: {}", message)
61 },
62 }
63 }
64}
65
66impl std::error::Error for KmsError {}
67
68pub type KmsResult<T> = Result<T, KmsError>;