lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

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 }