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}
23
24#[async_trait::async_trait]
25impl EventEmittingModel for super::ServerBackup {
26 type Event = ServerBackupEvent;
27
28 fn get_event_emitter() -> &'static crate::events::EventEmitter<Self::Event> {
29 static EVENT_EMITTER: LazyLock<crate::events::EventEmitter<ServerBackupEvent>> =
30 LazyLock::new(crate::events::EventEmitter::default);
31
32 &EVENT_EMITTER
33 }
34}