use tokio::io;
use crate::croc::Relay;
#[derive(Debug, Clone)]
pub struct Progress {
pub file_name: String,
pub percentage: u8,
pub bytes_sent: Option<u64>,
pub bytes_total: Option<u64>,
pub speed: Option<f64>,
}
#[derive(Debug, Clone)]
pub struct FileInfo {
pub name: String,
pub size: u64,
}
#[derive(Debug)]
pub enum CrocEvent {
Hashing(Progress),
SendingInfo(FileInfo),
ReceivingInfo(FileInfo),
CodeGenerated(String),
SendingTo(Relay),
ReceivingFrom(Relay),
Sending(Progress),
Receiving(Progress),
Unknown(String),
EOF,
IoError(io::Error),
}
impl From<io::Error> for CrocEvent {
fn from(value: io::Error) -> Self {
Self::IoError(value)
}
}