shared/models/server_backup/
events.rs1use crate::models::EventEmittingModel;
2use std::sync::LazyLock;
3
4#[non_exhaustive]
5pub enum ServerBackupEvent {
6 RestoreStarted {
8 backup: Box<super::ServerBackup>,
9 server: Box<crate::models::server::Server>,
10 },
11 RestoreCompleted {
13 backup: Box<super::ServerBackup>,
14 server: Box<crate::models::server::Server>,
15 successful: bool,
16 },
17 CreationCompleted {
19 backup: Box<super::ServerBackup>,
20 successful: bool,
21 },
22 DeletionCompleted {
24 backup: Box<super::ServerBackup>,
25 successful: bool,
26 },
27}
28
29#[async_trait::async_trait]
30impl EventEmittingModel for super::ServerBackup {
31 type Event = ServerBackupEvent;
32
33 fn get_event_emitter() -> &'static crate::events::EventEmitter<Self::Event> {
34 static EVENT_EMITTER: LazyLock<crate::events::EventEmitter<ServerBackupEvent>> =
35 LazyLock::new(crate::events::EventEmitter::default);
36
37 &EVENT_EMITTER
38 }
39}