Skip to main content

mangofetch_core/core/
events.rs

1use 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}