byte_prefix 1.0.0

Human Readable file size formatting
Documentation
#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![deny(rustdoc::missing_doc_code_examples)]
#![doc = include_str!("../README.md")]

mod byte_sizes;
pub use byte_sizes::*;
mod parser;
pub use parser::*;
mod supported_format;
pub use supported_format::*;

#[cfg(test)]
mod sanity_checks {
    use crate::calc_bytes;

    #[test]
    fn bytes() {
        let size = 1023usize as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00B", formatted.as_str());
    }

    #[test]
    fn kib() {
        let size = 1024usize as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1.00KiB", formatted.as_str());

        let size = (1024 * 1023usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00KiB", formatted.as_str());

        let size = (1024 * 16usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("16.00KiB", formatted.as_str());
    }

    #[test]
    fn mib() {
        let size = (1024 * 1024usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1.00MiB", formatted.as_str());

        let size = (1024 * 1024 * 1023usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00MiB", formatted.as_str());

        let size = (1024 * 1024 * 16usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("16.00MiB", formatted.as_str());
    }

    #[test]
    fn gib() {
        let size = (1024 * 1024 * 1024usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1.00GiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1023usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00GiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 16usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("16.00GiB", formatted.as_str());
    }

    #[test]
    fn tib() {
        let size = (1024 * 1024 * 1024 * 1024usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1.00TiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1024 * 1023usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00TiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1024 * 16usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("16.00TiB", formatted.as_str());
    }

    #[test]
    fn pib() {
        let size = (1024 * 1024 * 1024 * 1024 * 1024usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1.00PiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1023usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00PiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 16usize) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("16.00PiB", formatted.as_str());
    }

    #[test]
    fn eib() {
        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024u128) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1.00EiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1023u128) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("1023.00EiB", formatted.as_str());

        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 16u128) as f32;
        let formatted = calc_bytes(size);

        assert_eq!("16.00EiB", formatted.as_str());
    }
}