Expand description
Byte Unit
A library for interaction with units of bytes. The units are B for 1 byte, KB for 1000 bytes, KiB for 1024 bytes, MB for 1000000 bytes, MiB for 1048576 bytes, etc, and up to ZiB which is 1180591620717411303424 bytes.
The data type for storing the size of bytes is u128
by default, but can also be changed to u64
by disabling the default features (it will also cause the highest supported unit down to PiB).
Usage
Macros
There are n_*_bytes
macros can be used. The star *
means the unit. For example, n_gb_bytes
can be used to get a n-GB value in bytes.
#[macro_use] extern crate byte_unit;
let result = n_gb_bytes!(4);
assert_eq!(4000000000, result);
You may need to assign a primitive type if the n
is not an integer.
#[macro_use] extern crate byte_unit;
let result = n_gb_bytes!(2.5, f64);
assert_eq!(2500000000, result);
Byte
The Byte
structure can be used for representing a size of bytes.
The from_str
associated function can parse any SIZE string and return a Byte
instance in common usage. The format of a SIZE string is like “123”, “123KiB” or “50.84 MB”.
extern crate byte_unit;
use byte_unit::Byte;
let result = Byte::from_str("50.84 MB").unwrap();
assert_eq!(50840000, result.get_bytes());
You can also use the from_bytes
and from_unit
associated functions to create a Byte
instance.
extern crate byte_unit;
use byte_unit::Byte;
let result = Byte::from_bytes(1500000);
assert_eq!(1500000, result.get_bytes());
extern crate byte_unit;
use byte_unit::{Byte, ByteUnit};
let result = Byte::from_unit(1500f64, ByteUnit::KB).unwrap();
assert_eq!(1500000, result.get_bytes());
AdjustedByte
To change the unit of a Byte
instance, you can use the get_adjusted_unit
method.
extern crate byte_unit;
use byte_unit::{Byte, ByteUnit};
let byte = Byte::from_str("123KiB").unwrap();
let adjusted_byte = byte.get_adjusted_unit(ByteUnit::KB);
assert_eq!("125.95 KB", adjusted_byte.to_string());
To change the unit of a Byte
instance automatically and appropriately, you can use the get_appropriate_unit
method.
extern crate byte_unit;
use byte_unit::Byte;
let byte = Byte::from_bytes(1500000);
let adjusted_byte = byte.get_appropriate_unit(false);
assert_eq!("1.50 MB", adjusted_byte.to_string());
extern crate byte_unit;
use byte_unit::Byte;
let byte = Byte::from_bytes(1500000);
let adjusted_byte = byte.get_appropriate_unit(true);
assert_eq!("1.43 MiB", adjusted_byte.to_string());
The number of fractional digits created by the to_string
method of a AdjustedByte
instance is 2
unless the ByteUnit
is B
.
To change the number of fractional digits in the formatted string, you can use the format
method instead.
extern crate byte_unit;
use byte_unit::Byte;
let byte = Byte::from_bytes(1500000);
let adjusted_byte = byte.get_appropriate_unit(false);
assert_eq!("1.5 MB", adjusted_byte.format(1));
No Std
Disable the default features to compile this crate without std.
[dependencies.byte-unit]
version = "*"
default-features = false
features = ["u128"]
Serde Support
Enable the serde
feature to support the serde framework.
[dependencies.byte-unit]
version = "*"
features = ["serde"]
Macros
- Convert n EB to bytes.
- Convert n EiB to bytes.
- Convert n GB to bytes.
- Convert n GiB to bytes.
- Convert n KB to bytes.
- Convert n KiB to bytes.
- Convert n MB to bytes.
- Convert n MiB to bytes.
- Convert n PB to bytes.
- Convert n PiB to bytes.
- Convert n TB to bytes.
- Convert n TiB to bytes.
- Convert n ZB to bytes.
- Convert n ZiB to bytes.
Structs
- Generated from the
get_appropriate_unit
andget_adjusted_unit
methods of aByte
object. - Represent the n-bytes data. Use associated functions:
from_unit
,from_bytes
,from_str
, to create the instance. - Errors for
ByteUnit
.
Enums
- Error types for
Byte
andByteUnit
. - The unit of bytes.
- Error types for parsing values.
Constants
- EB
- EiB
- GiB
- GB
- KiB
- KB
- MiB
- MB
- PiB
- PB
- TiB
- TB
- ZiB
- ZB
Functions
- Convert n EB to bytes.
- Convert n EiB to bytes.
- Convert n GB to bytes.
- Convert n GiB to bytes.
- Convert n KB to bytes.
- Convert n KiB to bytes.
- Convert n MB to bytes.
- Convert n MiB to bytes.
- Convert n PB to bytes.
- Convert n PiB to bytes.
- Convert n TB to bytes.
- Convert n TiB to bytes.
- Convert n ZB to bytes.
- Convert n ZiB to bytes.