error.rs (2280B)
1 use alloc::string::String; 2 use core::fmt; 3 4 #[derive(Debug, Clone, PartialEq, Eq)] 5 pub enum RadrootsSimplexAppStoreError { 6 SecretVault(String), 7 MissingDatabaseKey, 8 InvalidDatabaseKey(String), 9 EncryptionUnavailable, 10 EncryptionKeyRejected, 11 MessageLifecycle(String), 12 Schema(String), 13 Sqlite(String), 14 Io(String), 15 } 16 17 impl fmt::Display for RadrootsSimplexAppStoreError { 18 fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { 19 match self { 20 Self::SecretVault(message) => { 21 write!(formatter, "SimpleX app secret-vault error: {message}") 22 } 23 Self::MissingDatabaseKey => { 24 write!( 25 formatter, 26 "SimpleX app database key is missing from host secret storage" 27 ) 28 } 29 Self::InvalidDatabaseKey(message) => { 30 write!(formatter, "SimpleX app database key is invalid: {message}") 31 } 32 Self::EncryptionUnavailable => { 33 write!(formatter, "SimpleX app store encryption is unavailable") 34 } 35 Self::EncryptionKeyRejected => { 36 write!(formatter, "SimpleX app store encryption key was rejected") 37 } 38 Self::MessageLifecycle(message) => { 39 write!(formatter, "SimpleX app message lifecycle error: {message}") 40 } 41 Self::Schema(message) => write!(formatter, "SimpleX app store schema error: {message}"), 42 Self::Sqlite(message) => write!(formatter, "SimpleX app sqlite error: {message}"), 43 Self::Io(message) => write!(formatter, "SimpleX app store io error: {message}"), 44 } 45 } 46 } 47 48 #[cfg(feature = "std")] 49 impl std::error::Error for RadrootsSimplexAppStoreError {} 50 51 #[cfg(feature = "std")] 52 impl From<radroots_secret_vault::RadrootsSecretVaultAccessError> for RadrootsSimplexAppStoreError { 53 fn from(value: radroots_secret_vault::RadrootsSecretVaultAccessError) -> Self { 54 Self::SecretVault(value.to_string()) 55 } 56 } 57 58 #[cfg(all(feature = "std", feature = "sqlcipher"))] 59 impl From<rusqlite::Error> for RadrootsSimplexAppStoreError { 60 fn from(value: rusqlite::Error) -> Self { 61 Self::Sqlite(value.to_string()) 62 } 63 }