mangofetch_core/core/
events.rs1use crate::models::queue::QueueItemInfo;
2use serde::Serialize;
3
4#[derive(Clone, Serialize)]
5pub struct QueueItemProgress {
6 pub id: u64,
7 pub title: String,
8 pub platform: String,
9 pub percent: f64,
10 pub speed_bytes_per_sec: f64,
11 pub downloaded_bytes: u64,
12 pub total_bytes: Option<u64>,
13 pub phase: String,
14}
15
16pub trait EventEmitter: Send + Sync + Clone + 'static {
17 fn emit_queue_state(&self, items: &[QueueItemInfo]);
18 fn emit_progress(&self, progress: &QueueItemProgress);
19}