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
10#[bitwarden_ffi::wasm_object]
12pub struct EmergencyAccessClient {
13 pub(crate) api_configurations: Arc<ApiConfigurations>,
14 pub(crate) key_store: KeyStore<KeySlotIds>,
15}
16
17impl FromClient for EmergencyAccessClient {
18 fn from_client(client: &Client) -> Self {
19 Self {
20 api_configurations: client.get_part(),
21 key_store: client.get_part(),
22 }
23 }
24}
25
26pub trait EmergencyAccessClientExt {
28 fn emergency_access(&self) -> EmergencyAccessClient;
30}
31
32impl EmergencyAccessClientExt for Client {
33 fn emergency_access(&self) -> EmergencyAccessClient {
34 EmergencyAccessClient::from_client(self)
35 }
36}