bitwarden_vault/cipher/
cipher_permissions.rs

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