lib

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

capability.rs (1701B)


      1 use radroots_storage::backup::{BackupCapabilityError, RestoreCapabilityError};
      2 
      3 pub(super) fn map_error(error: crate::Error) -> BackupCapabilityError {
      4     use crate::Error as E;
      5     match error {
      6         E::BackupBackendUnavailable => BackupCapabilityError::Unavailable,
      7         E::BackupRootRequired | E::InvalidBackupRoot(_) => {
      8             BackupCapabilityError::InvalidConfiguration
      9         }
     10         E::UnsupportedBackupVersion => BackupCapabilityError::UnsupportedVersion,
     11         E::BackupBundleAlreadyExists(_) => BackupCapabilityError::Conflict,
     12         E::BackupBundleMissing(_)
     13         | E::BackupVerificationFailed { .. }
     14         | E::BackupUnexpectedEntry(_) => BackupCapabilityError::VerificationFailed,
     15         _ => BackupCapabilityError::Failed,
     16     }
     17 }
     18 
     19 pub(super) fn map_restore_error(error: crate::Error) -> RestoreCapabilityError {
     20     use crate::Error as E;
     21     match error {
     22         E::BackupBackendUnavailable | E::RestoreRequiresWritableStorage => {
     23             RestoreCapabilityError::Unavailable
     24         }
     25         E::BackupRootRequired | E::InvalidBackupRoot(_) => {
     26             RestoreCapabilityError::InvalidConfiguration
     27         }
     28         E::UnsupportedBackupVersion => RestoreCapabilityError::UnsupportedVersion,
     29         E::BackupBundleAlreadyExists(_)
     30         | E::RestoreStagingAlreadyExists(_)
     31         | E::RestoreRecoveryConflict(_) => RestoreCapabilityError::Conflict,
     32         E::BackupBundleMissing(_)
     33         | E::BackupVerificationFailed { .. }
     34         | E::BackupUnexpectedEntry(_)
     35         | E::RestoreStagingFailed { .. }
     36         | E::RestoreMarkerCorrupt(_) => RestoreCapabilityError::VerificationFailed,
     37         _ => RestoreCapabilityError::Failed,
     38     }
     39 }