use tokio::sync::broadcast;
use crate::Launcher;
#[derive(Clone)]
pub struct Progress {
pub task: String,
pub file: String,
pub total: u64,
pub current: u64,
}
impl Launcher {
pub fn on_progress(&self) -> broadcast::Receiver<Progress> {
self.progress_receiver.resubscribe()
}
pub(crate) fn emit_progress(&mut self, task: &str, file: &str, total: u64, current: u64) {
self.progress = Progress {
task: task.to_string(),
file: file.to_string(),
total,
current,
};
let _ = self.progress_sender.send(self.progress.clone());
}
}