bitwarden_vault/
folder_client.rs1use bitwarden_core::Client;
2#[cfg(feature = "wasm")]
3use wasm_bindgen::prelude::*;
4
5use crate::{
6 error::{DecryptError, EncryptError},
7 Folder, FolderView,
8};
9
10#[allow(missing_docs)]
11#[cfg_attr(feature = "wasm", wasm_bindgen)]
12pub struct FoldersClient {
13 pub(crate) client: Client,
14}
15
16#[cfg_attr(feature = "wasm", wasm_bindgen)]
17impl FoldersClient {
18 #[allow(missing_docs)]
19 pub fn encrypt(&self, folder_view: FolderView) -> Result<Folder, EncryptError> {
20 let key_store = self.client.internal.get_key_store();
21 let folder = key_store.encrypt(folder_view)?;
22 Ok(folder)
23 }
24
25 #[allow(missing_docs)]
26 pub fn decrypt(&self, folder: Folder) -> Result<FolderView, DecryptError> {
27 let key_store = self.client.internal.get_key_store();
28 let folder_view = key_store.decrypt(&folder)?;
29 Ok(folder_view)
30 }
31
32 #[allow(missing_docs)]
33 pub fn decrypt_list(&self, folders: Vec<Folder>) -> Result<Vec<FolderView>, DecryptError> {
34 let key_store = self.client.internal.get_key_store();
35 let views = key_store.decrypt_list(&folders)?;
36 Ok(views)
37 }
38}