1use super::{EventKind, LogEvent};
3use crate::SecretId;
4use crate::{crypto::AeadPack, VaultCommit, VaultFlags};
5use serde::{Deserialize, Serialize};
6
7#[derive(Default, Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
9#[serde(rename_all = "camelCase")]
10pub enum WriteEvent {
11 #[default]
16 #[doc(hidden)]
17 Noop,
18
19 CreateVault(#[serde(skip)] Vec<u8>),
26
27 SetVaultName(String),
29
30 SetVaultFlags(VaultFlags),
32
33 SetVaultMeta(#[serde(skip)] AeadPack),
35
36 CreateSecret(SecretId, #[serde(skip)] VaultCommit),
38
39 UpdateSecret(SecretId, #[serde(skip)] VaultCommit),
41
42 DeleteSecret(SecretId),
44}
45
46impl LogEvent for WriteEvent {
47 fn event_kind(&self) -> EventKind {
48 match self {
49 WriteEvent::Noop => EventKind::Noop,
50 WriteEvent::CreateVault(_) => EventKind::CreateVault,
51 WriteEvent::SetVaultName(_) => EventKind::SetVaultName,
52 WriteEvent::SetVaultFlags(_) => EventKind::SetVaultFlags,
53 WriteEvent::SetVaultMeta(_) => EventKind::SetVaultMeta,
54 WriteEvent::CreateSecret(_, _) => EventKind::CreateSecret,
55 WriteEvent::UpdateSecret(_, _) => EventKind::UpdateSecret,
56 WriteEvent::DeleteSecret(_) => EventKind::DeleteSecret,
57 }
58 }
59}