t_rust_less_lib/api/
event.rs

1use crate::api::Identity;
2use serde::{Deserialize, Serialize};
3use zeroize::Zeroize;
4
5use super::ClipboardProviding;
6
7#[derive(Clone, Debug, Serialize, Deserialize, Zeroize)]
8#[zeroize(drop)]
9pub enum EventData {
10  StoreUnlocked {
11    store_name: String,
12    identity: Identity,
13  },
14  StoreLocked {
15    store_name: String,
16  },
17  SecretOpened {
18    store_name: String,
19    identity: Identity,
20    secret_id: String,
21  },
22  SecretVersionAdded {
23    store_name: String,
24    identity: Identity,
25    secret_id: String,
26  },
27  IdentityAdded {
28    store_name: String,
29    identity: Identity,
30  },
31  ClipboardProviding(ClipboardProviding),
32  ClipboardDone,
33}
34
35pub trait EventHub: Send + Sync {
36  fn send(&self, event: EventData);
37}
38
39#[derive(Clone, Debug, Serialize, Deserialize, Zeroize)]
40#[zeroize(drop)]
41pub struct Event {
42  pub id: u64,
43  pub data: EventData,
44}