use serde::Serialize;
use crate::dfu::DfuDevice;
#[derive(Debug, Clone, Serialize)]
#[serde(tag = "event", rename_all = "snake_case")]
pub enum Event {
DfuTriggerStage {
stage: String,
},
DeviceDetected {
device: DfuDevice,
},
FirmwareResolved {
identifier: String,
version: String,
build: String,
size: u64,
url: String,
},
CacheHit {
path: String,
},
DownloadResumed {
received: u64,
},
DownloadProgress {
received: u64,
total: u64,
},
Verifying,
RestoreStep {
step: u32,
name: String,
progress: f32,
},
UsbmuxdStarting,
DriverSetupStarting,
DriverBound {
name: String,
},
Done,
}
pub type ProgressFn<'a> = &'a mut dyn FnMut(Event);