lib

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

backend.rs (1515B)


      1 use crate::policy::RadrootsHostVaultPolicy;
      2 
      3 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
      4 pub enum RadrootsSecretBackendKind {
      5     HostVault,
      6     EncryptedFile,
      7     ExternalCommand,
      8     Memory,
      9 }
     10 
     11 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
     12 pub enum RadrootsSecretBackend {
     13     HostVault(RadrootsHostVaultPolicy),
     14     EncryptedFile,
     15     ExternalCommand,
     16     Memory,
     17 }
     18 
     19 impl RadrootsSecretBackend {
     20     #[must_use]
     21     pub const fn kind(self) -> RadrootsSecretBackendKind {
     22         match self {
     23             Self::HostVault(_) => RadrootsSecretBackendKind::HostVault,
     24             Self::EncryptedFile => RadrootsSecretBackendKind::EncryptedFile,
     25             Self::ExternalCommand => RadrootsSecretBackendKind::ExternalCommand,
     26             Self::Memory => RadrootsSecretBackendKind::Memory,
     27         }
     28     }
     29 }
     30 
     31 #[cfg(test)]
     32 mod tests {
     33     use super::*;
     34 
     35     #[test]
     36     fn backend_kind_maps_all_backend_variants() {
     37         assert_eq!(
     38             RadrootsSecretBackend::HostVault(RadrootsHostVaultPolicy::desktop()).kind(),
     39             RadrootsSecretBackendKind::HostVault
     40         );
     41         assert_eq!(
     42             RadrootsSecretBackend::EncryptedFile.kind(),
     43             RadrootsSecretBackendKind::EncryptedFile
     44         );
     45         assert_eq!(
     46             RadrootsSecretBackend::ExternalCommand.kind(),
     47             RadrootsSecretBackendKind::ExternalCommand
     48         );
     49         assert_eq!(
     50             RadrootsSecretBackend::Memory.kind(),
     51             RadrootsSecretBackendKind::Memory
     52         );
     53     }
     54 }