1use super::{EventKind, LogEvent};
3use crate::{ExternalFile, ExternalFileName, SecretPath};
4
5#[derive(Default, Debug, Clone, Eq, PartialEq)]
12pub enum FileEvent {
13 #[default]
14 #[doc(hidden)]
15 Noop,
16 CreateFile(SecretPath, ExternalFileName),
18 MoveFile {
20 name: ExternalFileName,
22 from: SecretPath,
24 dest: SecretPath,
26 },
27 DeleteFile(SecretPath, ExternalFileName),
29}
30
31impl From<ExternalFile> for FileEvent {
32 fn from(value: ExternalFile) -> Self {
33 let (path, name) = value.into();
34 FileEvent::CreateFile(path, name)
35 }
36}
37
38impl LogEvent for FileEvent {
39 fn event_kind(&self) -> EventKind {
40 match self {
41 Self::Noop => EventKind::Noop,
42 Self::CreateFile(_, _) => EventKind::CreateFile,
43 Self::MoveFile { .. } => EventKind::MoveFile,
44 Self::DeleteFile(_, _) => EventKind::DeleteFile,
45 }
46 }
47}