bitwarden_vault/cipher/
cipher_permissions.rs1use 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}