denlibs 0.2.0

denlibs is a general-purpose libraries.
Documentation
/// Formats a byte count into a human-readable string with appropriate unit (B, KB, MB, GB, TB).
///
/// # Example
/// ```rust
/// use denlibs::format_size;
///
/// assert_eq!(format_size(1024), "1.0 KB");
/// assert_eq!(format_size(315), "315 B");
/// assert_eq!(format_size(781542611), "745.3 MB");
/// ```
pub fn format_size(bytes: u64) -> String {
    let kib = 1024.0;
    let mib = kib * 1024.0;
    let gib = mib * 1024.0;
    let tib = gib * 1024.0;

    let bytes_f = bytes as f64;

    if bytes_f >= tib {
        format!("{:.1} TB", bytes_f / tib)
    } else if bytes_f >= gib {
        format!("{:.1} GB", bytes_f / gib)
    } else if bytes_f >= mib {
        format!("{:.1} MB", bytes_f / mib)
    } else if bytes_f >= kib {
        format!("{:.1} KB", bytes_f / kib)
    } else {
        format!("{} B", bytes)
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn format_size_test() {
        assert_eq!(format_size(1024), "1.0 KB");
        assert_eq!(format_size(315), "315 B");
        assert_eq!(format_size(781542611), "745.3 MB");
    }
}