t_rust_less_lib/api/
event.rs1use 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}