Expand description
This crate provides a mechanism to store numbers and display them as a multiple of the chosen power of 1000 bytes or 1024 bytes, e.g. in Megabytes or Mebibytes for human readability.
Example:
let mut bb = BytesConfig::default();
let b = bb.bytes(5247 as u16);
println!("{}", b); // Prints "5.25 KB"
The number is stored internally in the same type as was provided to initialize
the struct: u16
in this example.
The Bytes
structs are displayed using the preferences held in the BytesConfig
struct
that created them:
bb.set_precision(1);
println!("{}", b); // Prints "5.3 KB"
See example for more details.
Structs§
- Bytes
- The struct used to store the number of bytes.
Trait bounds specify what traits are required from the type used to store the number of bytes.
Into<u64>
in particular is required as the number of bytes is temporarily converted tou64
(the only type that we are sure can store any number stored in another type without overflowing) to compare it. - Bytes
Config - This struct captures the preferences for display of bytes and
creates instances of
Bytes
struct that contain a reference to the preferences that they must use for display. If the preferences are changed, allBytes
that theBytesConfig
instanciated adopt immediately the change. Config wrapped in Mutex makes the implementation threadsafe.
Enums§
- Bytes
Base - Specify the possible choices for the base used for the display of bytes, i.e. Gabyte: Powers of 1000 bytes (Kilobyte, Megabyte, …) Bibyte: Powers of 1024 bytes (Kibibyte, Mebibyte, …) giving its name to the crate Ga/Bi(byte).
Constants§
- BIBYTES
- Array with the list of unit names to use in the power of 1024 system
- GABYTES
- Array with the list of unit names to use in the power of 1000 system
Traits§
- Unsigned
- Marker trait used to indicate to the compiler what types are allowed to initialize the struct.