bitwarden_emergency_access/
emergency_access_client.rs1use std::sync::Arc;
2
3use bitwarden_core::{
4 Client, FromClient,
5 client::{ApiConfigurations, FromClientPart},
6 key_management::KeySlotIds,
7};
8use bitwarden_crypto::KeyStore;
9#[cfg(feature = "wasm")]
10use wasm_bindgen::prelude::wasm_bindgen;
11
12#[cfg_attr(feature = "wasm", wasm_bindgen)]
14pub struct EmergencyAccessClient {
15 pub(crate) api_configurations: Arc<ApiConfigurations>,
16 pub(crate) key_store: KeyStore<KeySlotIds>,
17}
18
19impl FromClient for EmergencyAccessClient {
20 fn from_client(client: &Client) -> Self {
21 Self {
22 api_configurations: client.get_part(),
23 key_store: client.get_part(),
24 }
25 }
26}
27
28pub trait EmergencyAccessClientExt {
30 fn emergency_access(&self) -> EmergencyAccessClient;
32}
33
34impl EmergencyAccessClientExt for Client {
35 fn emergency_access(&self) -> EmergencyAccessClient {
36 EmergencyAccessClient::from_client(self)
37 }
38}