pub fn format_speed(bytes_per_sec: f64) -> String {
if bytes_per_sec < 1024.0 {
format!("{:.0} B/s", bytes_per_sec)
} else if bytes_per_sec < 1024.0 * 1024.0 {
format!("{:.1} KB/s", bytes_per_sec / 1024.0)
} else if bytes_per_sec < 1024.0 * 1024.0 * 1024.0 {
format!("{:.2} MB/s", bytes_per_sec / (1024.0 * 1024.0))
} else {
format!("{:.2} GB/s", bytes_per_sec / (1024.0 * 1024.0 * 1024.0))
}
}
pub fn format_bytes(bytes: u64) -> String {
if bytes < 1024 {
format!("{} B", bytes)
} else if bytes < 1024 * 1024 {
format!("{:.1} KB", bytes as f64 / 1024.0)
} else if bytes < 1024 * 1024 * 1024 {
format!("{:.2} MB", bytes as f64 / (1024.0 * 1024.0))
} else {
format!("{:.2} GB", bytes as f64 / (1024.0 * 1024.0 * 1024.0))
}
}
pub fn ntohs(port: u32) -> u16 {
((port & 0xFF) << 8 | (port >> 8) & 0xFF) as u16
}