Skip to main content

bitwarden_vault/cipher/
cipher_permissions.rs

1use bitwarden_api_api::models::CipherPermissionsResponseModel;
2use bitwarden_core::require;
3use serde::{Deserialize, Serialize};
4
5use crate::VaultParseError;
6
7#[derive(Serialize, Copy, Deserialize, Debug, Clone, PartialEq)]
8#[serde(rename_all = "camelCase", deny_unknown_fields)]
9#[cfg_attr(feature = "uniffi", derive(uniffi::Record))]
10#[bitwarden_ffi::wasm_record]
11pub struct CipherPermissions {
12    pub delete: bool,
13    pub restore: bool,
14}
15
16impl TryFrom<CipherPermissionsResponseModel> for CipherPermissions {
17    type Error = VaultParseError;
18
19    fn try_from(permissions: CipherPermissionsResponseModel) -> Result<Self, Self::Error> {
20        Ok(Self {
21            delete: require!(permissions.delete),
22            restore: require!(permissions.restore),
23        })
24    }
25}