Enum byte_unit::Unit

source ·
pub enum Unit {
Show 34 variants Bit, B, Kbit, Kibit, KB, KiB, Mbit, Mibit, MB, MiB, Gbit, Gibit, GB, GiB, Tbit, Tibit, TB, TiB, Pbit, Pibit, PB, PiB, Ebit, Eibit, EB, EiB, Zbit, Zibit, ZB, ZiB, Ybit, Yibit, YB, YiB,
}
Expand description

The unit of bits/bytes.

Variants§

§

Bit

8 Bit = 1 byte.

§

B

1 B = 1 byte.

§

Kbit

1 Kbit = 125 bytes.

§

Kibit

1 Kibit = 27 bytes.

§

KB

1 KB = 103 bytes.

§

KiB

1 KiB = 210 bytes.

§

Mbit

1 Mbit = 125 * 103 bytes.

§

Mibit

1 Mibit = 217 bytes.

§

MB

1 MB = 106 bytes.

§

MiB

1 MiB = 220 bytes.

§

Gbit

1 Gbit = 125 * 106 bytes.

§

Gibit

1 Gibit = 227 bytes.

§

GB

1 GB = 109 bytes.

§

GiB

1 GiB = 230 bytes.

§

Tbit

1 Tbit = 125 * 109 bytes.

§

Tibit

1 Tibit = 237 bytes.

§

TB

1 TB = 1012 bytes.

§

TiB

1 TiB = 240 bytes.

§

Pbit

1 Pbit = 125 * 1012 bytes.

§

Pibit

1 Pibit = 247 bytes.

§

PB

1 PB = 1015 bytes.

§

PiB

1 PiB = 250 bytes.

§

Ebit

1 Ebit = 125 * 1015 bytes.

§

Eibit

1 Eibit = 257 bytes.

§

EB

1 EB = 1018 bytes.

§

EiB

1 EiB = 260 bytes.

§

Zbit

Available on crate feature u128 only.

1 Zbit = 125 * 1018 bytes.

§

Zibit

Available on crate feature u128 only.

1 Zibit = 267 bytes.

§

ZB

Available on crate feature u128 only.

1 ZB = 1021 bytes.

§

ZiB

Available on crate feature u128 only.

1 ZiB = 270 bytes.

§

Ybit

Available on crate feature u128 only.

1 Ybit = 125 * 1021 bytes.

§

Yibit

Available on crate feature u128 only.

1 Yibit = 277 bytes.

§

YB

Available on crate feature u128 only.

1 YB = 1024 bytes.

§

YiB

Available on crate feature u128 only.

1 YiB = 280 bytes.

Implementations§

source§

impl Unit

Associated functions for parsing strings.

source

pub fn parse_str<S: AsRef<str>>( s: S, ignore_case: bool, prefer_byte: bool ) -> Result<Self, UnitParseError>

Create a new Unit instance from a string. The string may be "", "B", "M", "MB", "MiB", "b", "Mb", "Mbit".

You can ignore the case of “B” (byte), which means b will still be treated as bytes instead of bits.

If the input string is empty, it will return B if prefer_byte is true; otherwise, it will return b. Similarly, if the string is not empty but it does not explicitly contains "B", "b", or "bit", it will imply the base is "B" if prefer_byte is true; otherwise, imply the base is "b".

Examples
let unit = Unit::parse_str("Kib", true, true).unwrap(); // KiB
let unit = Unit::parse_str("Kib", false, true).unwrap(); // Kibit
source§

impl Unit

Methods for converting a Unit instance into a primitive integer.

source

pub const fn as_bits_u128(self) -> u128

Retrieve the bit represented by this Unit instance.

Examples
use byte_unit::Unit;

assert_eq!(1, Unit::Bit.as_bits_u128());
assert_eq!(8, Unit::B.as_bits_u128());
assert_eq!(8000, Unit::KB.as_bits_u128());
assert_eq!(1024, Unit::Kibit.as_bits_u128());
source§

impl Unit

Methods for converting a Unit instance into a string.

source

pub const fn as_str(self) -> &'static str

Retrieve the string represented by this Unit instance.

Examples
use byte_unit::Unit;

assert_eq!("B", Unit::B.as_str());
assert_eq!("KB", Unit::KB.as_str());
assert_eq!("MiB", Unit::MiB.as_str());
assert_eq!("Gb", Unit::Gbit.as_str());
assert_eq!("Tib", Unit::Tibit.as_str());
source§

impl Unit

Methods for categorizing variants.

source

pub const fn is_bit(self) -> bool

Check whether the unit is based on bits.

Examples
use byte_unit::Unit;

assert_eq!(false, Unit::KB.is_bit());
assert_eq!(true, Unit::Kbit.is_bit());
source

pub const fn is_binary_multiples(self) -> bool

Check whether the unit is based on powers of 2.

Examples
use byte_unit::Unit;

assert_eq!(false, Unit::KB.is_binary_multiples());
assert_eq!(true, Unit::KiB.is_binary_multiples());

Trait Implementations§

source§

impl AsRef<str> for Unit

source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for Unit

source§

fn clone(&self) -> Unit

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Unit

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Unit

Available on crate feature serde only.
source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Unit

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<AdjustedBit> for Unit

Available on crate feature bit only.
source§

fn from(value: AdjustedBit) -> Self

Converts to this type from the input type.
source§

impl From<AdjustedByte> for Unit

Available on crate feature byte only.
source§

fn from(value: AdjustedByte) -> Self

Converts to this type from the input type.
source§

impl From<Unit> for u128

source§

fn from(unit: Unit) -> Self

source§

impl FromStr for Unit

source§

fn from_str(s: &str) -> Result<Self, Self::Err>

ignore_case is set to false; prefer_byte is set to true. See Unit::parse_str.

§

type Err = UnitParseError

The associated error which can be returned from parsing.
source§

impl PartialEq for Unit

source§

fn eq(&self, other: &Unit) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Unit

Available on crate feature serde only.
source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for Unit

source§

impl Eq for Unit

source§

impl StructuralEq for Unit

source§

impl StructuralPartialEq for Unit

Auto Trait Implementations§

§

impl RefUnwindSafe for Unit

§

impl Send for Unit

§

impl Sync for Unit

§

impl Unpin for Unit

§

impl UnwindSafe for Unit

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,