bitwarden_vault/
folder_client.rs

1use 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}