Crate simplebyteunit

source ·
Expand description

A thin encapsulate for integer primitives to facilitate a fast, simple, yet ergonomic byteunit implementation.

Getting Started

Add ‘simplebyteunit’ to your ‘Cargo.toml’:

[dependencies]
simplebyteunit = "0.1.0"

Example

Generate a human-readable, formatted ByteUnit:

use simplebyteunit::simplebyteunit::*;

let byteunit_var = 500000.to_byteunit(SI);

println!("{byteunit_var}");

Output:

500 KB

Parsing strings into ByteUnits

And then you can parse formatted strings back into a ByteUnit

use simplebyteunit::simplebyteunit::*;

let byteunit_var: ByteUnit<i64> = "500 KB".into();

println!("{byteunit_var}");

Output:

500 KB

Simple arithmetic operations

Addition, subtraction, multiplication, subtraction, and division are supported on this type.

use simplebyteunit::simplebyteunit::*;

let a: ByteUnit<i64> = ByteUnit::SI(5000000);
let b: ByteUnit<i64> = ByteUnit::SI(5000000);
let byteunit_sum = a + b;

println!("{byteunit_sum}");

Output:

1.0 MB

Equal/and/or operations

Equal operations are supported on this type:

use simplebyteunit::simplebyteunit::*;

let a: ByteUnit<i64> = "500 KiB".into();
let b: ByteUnit<i64> = "500 KiB".into();
let byteunit_bool = a == b;

println!("{byteunit_bool}");

Output:

true

Or operations are supported directly on this type:

use simplebyteunit::simplebyteunit::*;

let a: ByteUnit<i64> = 5000000.to_byteunit(IEC);
let b: ByteUnit<i64> = 5000000.to_byteunit(IEC);
let byteunit_bool = a >= b;

println!("{byteunit_bool}");

Output:

true

Modules