Struct byte_unit::Byte

source ·
pub struct Byte(/* private fields */);
Available on crate feature byte only.
Expand description

Representing the size in bytes.

Implementations§

source§

impl Byte

Associated functions for generating AdjustedByte.

source

pub fn get_adjusted_unit(self, unit: Unit) -> AdjustedByte

Adjust the unit and value for this Byte instance.

§Examples
use byte_unit::{AdjustedByte, Byte, Unit};

let byte = Byte::parse_str("123KiB", true).unwrap();

let adjusted_byte = byte.get_adjusted_unit(Unit::KB);

assert_eq!("125.952 KB", adjusted_byte.to_string());
use byte_unit::{AdjustedByte, Byte, Unit};

let byte = Byte::parse_str("50.84 MB", true).unwrap();

let adjusted_byte = byte.get_adjusted_unit(Unit::MiB);

assert_eq!("48.48480224609375 MiB", adjusted_byte.to_string());
source

pub fn get_appropriate_unit(&self, unit_type: UnitType) -> AdjustedByte

Find the appropriate unit and value for this Byte instance.

§Examples
use byte_unit::{Byte, UnitType};

let byte = Byte::parse_str("123KiB", true).unwrap();

let adjusted_byte = byte.get_appropriate_unit(UnitType::Decimal);

assert_eq!("125.952 KB", adjusted_byte.to_string());
use byte_unit::{Byte, UnitType};

let byte = Byte::parse_str("50.84 MB", true).unwrap();

let adjusted_byte = byte.get_appropriate_unit(UnitType::Binary);

assert_eq!("48.48480224609375 MiB", adjusted_byte.to_string());
source§

impl Byte

Constant Bytes.

source

pub const BYTE: Byte = _

One byte.

source

pub const KILOBYTE: Byte = _

1 KB = 103 bytes.

source

pub const MEGABYTE: Byte = _

1 MB = 106 bytes.

source

pub const GIGABYTE: Byte = _

1 GB = 109 bytes.

source

pub const TERABYTE: Byte = _

1 TB = 1012 bytes.

source

pub const PETABYTE: Byte = _

1 PB = 1015 bytes.

source

pub const EXABYTE: Byte = _

1 EB = 1018 bytes.

source

pub const ZETTABYTE: Byte = _

Available on crate feature u128 only.

1 ZB = 1021 bytes.

source

pub const YOTTABYTE: Byte = _

Available on crate feature u128 only.

1 YB = 1024 bytes.

source

pub const KIBIBYTE: Byte = _

1 KiB = 210 bytes.

source

pub const MEBIBYTE: Byte = _

1 MiB = 220 bytes.

source

pub const GIBIBYTE: Byte = _

1 GiB = 230 bytes.

source

pub const TEBIBYTE: Byte = _

1 TiB = 240 bytes.

source

pub const PEBIBYTE: Byte = _

1 PiB = 250 bytes.

source

pub const EXBIBYTE: Byte = _

1 EiB = 260 bytes.

source

pub const ZEBIBYTE: Byte = _

Available on crate feature u128 only.

1 ZiB = 270 bytes.

source

pub const YOBIBYTE: Byte = _

Available on crate feature u128 only.

1 YiB = 280 bytes.

source

pub const KILOBIT: Byte = _

1 Kbit = 125 bytes.

source

pub const MEGABIT: Byte = _

1 Mbit = 125 * 103 bytes.

source

pub const GIGABIT: Byte = _

1 Gbit = 125 * 106 bytes.

source

pub const TERABIT: Byte = _

1 Tbit = 125 * 109 bytes.

source

pub const PETABIT: Byte = _

1 Pbit = 125 * 1012 bytes.

source

pub const EXABIT: Byte = _

1 Ebit = 125 * 1015 bytes.

source

pub const ZETTABIT: Byte = _

Available on crate feature u128 only.

1 Zbit = 125 * 1018 bytes.

source

pub const YOTTABIT: Byte = _

Available on crate feature u128 only.

1 Ybit = 125 * 1021 bytes.

source

pub const KIBIBIT: Byte = _

1 Kibit = 27 bytes.

source

pub const MEBIBIT: Byte = _

1 Mibit = 217 bytes.

source

pub const GIBIBIT: Byte = _

1 Gibit = 227 bytes.

source

pub const TEBIBIT: Byte = _

1 Tibit = 237 bytes.

source

pub const PEBIBIT: Byte = _

1 Pibit = 247 bytes.

source

pub const EXBIBIT: Byte = _

1 Eibit = 257 bytes.

source

pub const ZEBIBIT: Byte = _

Available on crate feature u128 only.

1 Zibit = 267 bytes.

source

pub const YOBIBIT: Byte = _

Available on crate feature u128 only.

1 Yibit = 277 bytes.

source

pub const MIN: Byte = _

0 byte.

source

pub const MAX: Byte = _

1027 - 1 bytes if the u128 feature is enabled, or 264 - 1 otherwise.

source§

impl Byte

Associated functions for building Byte instances using Decimal.

source

pub fn from_decimal(size: Decimal) -> Option<Self>

Create a new Byte instance from a size in bytes.

§Examples
use byte_unit::Byte;
use rust_decimal::Decimal;

let byte = Byte::from_decimal(Decimal::from(15000000u64)).unwrap(); // 15 MB
§Points to Note
  • If the input size is too large (the maximum is 1027 - 1 if the u128 feature is enabled, or 264 - 1 otherwise) or not greater than or equal to 0, this function will return None.
  • The fractional part will be rounded up.
source§

impl Byte

Associated functions for building Byte instances using Decimal (with Unit).

source

pub fn from_decimal_with_unit(size: Decimal, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};
use rust_decimal::Decimal;

let byte = Byte::from_decimal_with_unit(Decimal::from(15u64), Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large or not greater than or equal to 0, this function will return None.
  • The calculated byte will be rounded up.
source§

impl Byte

Methods for finding an unit using Decimal.

source

pub fn get_recoverable_unit( self, allow_in_bits: bool, precision: usize ) -> (Decimal, Unit)

Find the appropriate unit and value that can be used to recover back to this Byte precisely.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64(3670016);

assert_eq!(
    (3.5f64.try_into().unwrap(), Unit::MiB),
    byte.get_recoverable_unit(false, 3)
);
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64(437500);

assert_eq!(
    (3.5f64.try_into().unwrap(), Unit::Mbit),
    byte.get_recoverable_unit(true, 3)
);
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64(437500);

assert_eq!(
    (437.5f64.try_into().unwrap(), Unit::KB),
    byte.get_recoverable_unit(false, 3)
);
§Points to Note
  • precision should be smaller or equal to 26 if the u128 feature is enabled, otherwise 19. The typical precision is 3.
source§

impl Byte

Associated functions for parsing strings.

source

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

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

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

§Examples
let byte = Byte::parse_str("123Kib", true).unwrap(); // 123 * 1024 bytes
let byte = Byte::parse_str("123Kib", false).unwrap(); // 123 * 1024 bits = 123 * 1024 / 8 bytes
source§

impl Byte

Associated functions for building Byte instances.

source

pub const fn from_u128(size: u128) -> Option<Self>

Create a new Byte instance from a size in bytes.

§Examples
let byte = Byte::from_u128(15000000).unwrap(); // 15 MB
§Points to Note
  • If the input size is too large (the maximum is 1027 - 1 if the u128 feature is enabled, or 264 - 1 otherwise), this function will return None.
source

pub const unsafe fn from_u128_unsafe(size: u128) -> Self

Create a new Byte instance from a size in bytes.

§Examples
let byte = unsafe { Byte::from_u128_unsafe(15000000) }; // 15 MB
§Safety

You must ensure the input size is not too large (the maximum is 1027 - 1 if the u128 feature is enabled, or 264 - 1 otherwise) on your own.

source

pub const fn from_u64(size: u64) -> Self

Create a new Byte instance from a size in bytes.

§Examples
let byte = Byte::from_u64(15000000); // 15 MB
source

pub fn from_f64(size: f64) -> Option<Self>

Create a new Byte instance from a size in bytes.

§Examples
let byte = Byte::from_f64(15000000.0).unwrap(); // 15 MB
§Points to Note
  • If the input size is too large (the maximum is 1027 - 1 if the u128 feature is enabled, or 264 - 1 otherwise) or not greater than or equal to 0, this function will return None.
  • The fractional part will be rounded up.
source

pub fn from_f32(size: f32) -> Option<Self>

Create a new Byte instance from a size in bytes.

§Examples
let byte = Byte::from_f32(15000000.0).unwrap(); // 15 MB
§Points to Note
  • If the input size is too large (the maximum is 1027 - 1 if the u128 feature is enabled, or 264 - 1 otherwise) or not greater than or equal to 0, this function will return None.
  • The fractional part will be rounded up.
source

pub const fn from_i128(size: i128) -> Option<Self>

Create a new Byte instance from a size in bytes.

§Examples
let byte = Byte::from_i128(15000000).unwrap(); // 15 MB
§Points to Note
  • If the input size is too large (the maximum is 1027 - 1 if the u128 feature is enabled, or 264 - 1 otherwise) or negative, this function will return None.
source

pub const fn from_i64(size: i64) -> Option<Self>

Create a new Byte instance from a size in bytes.

§Examples
let byte = Byte::from_i64(15000000).unwrap(); // 15 MB
§Points to Note
  • If the input size is negative, this function will return None.
source§

impl Byte

Associated functions for building Byte instances (with Unit).

source

pub const fn from_u128_with_unit(size: u128, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_u128_with_unit(15, Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large, this function will return None.
  • If the input unit is Bit, the calculated byte will be rounded up.
source

pub const fn from_u64_with_unit(size: u64, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64_with_unit(15, Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large, this function will return None.
  • If the input unit is Bit, the calculated byte will be rounded up.
source

pub fn from_f64_with_unit(size: f64, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_f64_with_unit(15.0, Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large or not greater than or equal to 0, this function will return None.
  • The calculated byte will be rounded up.
source

pub fn from_f32_with_unit(size: f32, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_f32_with_unit(15.0, Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large or not greater than or equal to 0, this function will return None.
  • The calculated byte will be rounded up.
source

pub const fn from_i128_with_unit(size: i128, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_i128_with_unit(15, Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large or negative, this function will return None.
  • The calculated byte will be rounded up.
source

pub const fn from_i64_with_unit(size: i64, unit: Unit) -> Option<Self>

Create a new Byte instance from a size of bytes with a unit.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_i64_with_unit(15, Unit::MB).unwrap(); // 15 MB
§Points to Note
  • If the calculated byte is too large or negative, this function will return None.
  • The calculated byte will be rounded up.
source§

impl Byte

Methods for converting a Byte instance into a primitive integer.

source

pub const fn as_u128(self) -> u128

Retrieve the byte represented by this Byte instance.

§Examples
use byte_unit::Byte;

let byte = Byte::parse_str("123Kib", true).unwrap();

let result = byte.as_u128();

assert_eq!(125952, result);
use byte_unit::Byte;

let byte = Byte::parse_str("123Kib", false).unwrap();

let result = byte.as_u128();

assert_eq!(15744, result);
source

pub const fn as_u64(self) -> u64

Retrieve the byte represented by this Byte instance. When the u128 feature is enabled, if the byte is actually greater than 264 - 1, it will return 264 - 1.

§Examples
use byte_unit::Byte;

let byte = Byte::parse_str("1kb", true).unwrap();

let result = byte.as_u64();

assert_eq!(1000, result);
use byte_unit::Byte;

let byte = Byte::parse_str("1zb", true).unwrap();

let result = byte.as_u64();

assert_eq!(u64::MAX, result);
source

pub const fn as_u64_checked(self) -> Option<u64>

Retrieve the byte represented by this Byte instance.

§Examples
use byte_unit::Byte;

let byte = Byte::parse_str("1kb", true).unwrap();

let result = byte.as_u64_checked();

assert_eq!(Some(1000), result);
use byte_unit::Byte;

let byte = Byte::parse_str("1zb", true).unwrap();

let result = byte.as_u64_checked();

assert_eq!(None, result);
source§

impl Byte

Methods for calculation.

source

pub const fn add(self, rhs: Byte) -> Option<Byte>

Add another Byte instance.

§Examples
use byte_unit::Byte;

let byte_1 = Byte::from_u64(1024);
let byte_2 = Byte::from_u64(512);

let byte = byte_1.add(byte_2).unwrap();

assert_eq!(1536, byte.as_u64());
§Points to Note
  • If the calculated byte is too large, this function will return None.
source

pub const fn subtract(self, rhs: Byte) -> Option<Byte>

Subtract another Byte instance.

§Examples
use byte_unit::Byte;

let byte_1 = Byte::from_u64(1024);
let byte_2 = Byte::from_u64(512);

let byte = byte_1.subtract(byte_2).unwrap();

assert_eq!(512, byte.as_u64());
§Points to Note
  • If the right-hand side is bigger then this Byte instance, this function will return None.
source

pub const fn multiply(self, rhs: usize) -> Option<Byte>

Multiplied by an unsigned integer.

§Examples
use byte_unit::Byte;

let count = 100;
let byte = Byte::from_u64(1024);

let total_byte = byte.multiply(100).unwrap();

assert_eq!(102400, total_byte.as_u64());
§Points to Note
  • If the calculated byte is too large, this function will return None.
source

pub const fn divide(self, rhs: usize) -> Option<Byte>

Divided by an unsigned integer.

§Examples
use byte_unit::Byte;

let count = 100;
let byte = Byte::from_u64(1024);

let total_byte = byte.divide(100).unwrap();

assert_eq!(10, total_byte.as_u64());
§Points to Note
  • If the input right-hand side is zero, this function will return None.
  • The result will be rounded down.
source§

impl Byte

Methods for finding an unit.

source

pub const fn get_exact_unit(self, allow_in_bits: bool) -> (u128, Unit)

Obtain the largest unit which is the greatest factor of this Byte instance.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64(3145728);

let (n, unit) = byte.get_exact_unit(true);

assert_eq!(3, n);
assert_eq!(Unit::MiB, unit);
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64(375000);

let (n, unit) = byte.get_exact_unit(true);

assert_eq!(3, n);
assert_eq!(Unit::Mbit, unit);
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64(375000);

let (n, unit) = byte.get_exact_unit(false);

assert_eq!(375, n);
assert_eq!(Unit::KB, unit);

Trait Implementations§

source§

impl Clone for Byte

source§

fn clone(&self) -> Byte

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 Byte

source§

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

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

impl Default for Byte

source§

fn default() -> Byte

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Byte

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 Byte

source§

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

Formats the value using the given formatter.

§Examples
use byte_unit::{Byte, Unit};

let byte = Byte::from_u64_with_unit(1555, Unit::KB).unwrap();

assert_eq!("1555000", byte.to_string());
use byte_unit::{Byte, UnitType};

let byte_based_2 = Byte::from_u64(10240);
let byte_based_10 = Byte::from_u64(10000);

assert_eq!("10240", format!("{byte_based_2}"));
assert_eq!("10000", format!("{byte_based_10}"));

// with an exact unit
assert_eq!("10 KiB", format!("{byte_based_2:#}"));
assert_eq!("10 KB", format!("{byte_based_10:#}"));

// with an exact unit, no spaces between the value and the unit
assert_eq!("10KiB", format!("{byte_based_2:-#}"));
assert_eq!("10KB", format!("{byte_based_10:-#}"));

// with a width, left alignment
assert_eq!("10     KiB", format!("{byte_based_2:#10}"));
assert_eq!("10      KB", format!("{byte_based_10:#10}"));

// with a width, right alignment
assert_eq!("    10 KiB", format!("{byte_based_2:>#10}"));
assert_eq!("     10 KB", format!("{byte_based_10:>#10}"));

// with a width, right alignment, more spaces between the value and the unit
assert_eq!("    10 KiB", format!("{byte_based_2:>+#10}"));
assert_eq!("    10  KB", format!("{byte_based_10:>+#10}"));
use byte_unit::{Byte, UnitType};

let byte = Byte::from_u64(3211776);

assert_eq!("3211776", format!("{byte}"));

// with a unit, still precisely
assert_eq!("3136.5 KiB", format!("{byte:#}"));

// with a unit and a larger precision (default is 3), still precisely
assert_eq!("3.211776 MB", format!("{byte:#.6}"));

// with a unit and a smaller precision (default is 3), still precisely
assert_eq!("3211776 B", format!("{byte:#.0}"));
source§

impl From<AdjustedByte> for Byte

source§

fn from(value: AdjustedByte) -> Self

Converts to this type from the input type.
source§

impl From<Byte> for AdjustedByte

source§

fn from(value: Byte) -> Self

unit_type is set to UnitType::Both. See Byte::get_appropriate_unit.

source§

impl From<Byte> for u128

source§

fn from(byte: Byte) -> Self

Converts to this type from the input type.
source§

impl From<Byte> for u64

source§

fn from(byte: Byte) -> Self

Converts to this type from the input type.
source§

impl From<u16> for Byte

source§

fn from(value: u16) -> Self

Converts to this type from the input type.
source§

impl From<u32> for Byte

source§

fn from(value: u32) -> Self

Converts to this type from the input type.
source§

impl From<u64> for Byte

source§

fn from(value: u64) -> Self

Converts to this type from the input type.
source§

impl From<u8> for Byte

source§

fn from(value: u8) -> Self

Converts to this type from the input type.
source§

impl From<usize> for Byte

source§

fn from(value: usize) -> Self

Converts to this type from the input type.
source§

impl<'r> FromFormField<'r> for Byte

Available on crate feature rocket only.
source§

fn from_value(v: ValueField<'r>) -> Result<'r, Self>

Parse a value of T from a form value field. Read more
source§

fn from_data<'life0, 'async_trait>( field: DataField<'v, 'life0> ) -> Pin<Box<dyn Future<Output = Result<Self, Errors<'v>>> + Send + 'async_trait>>
where 'v: 'async_trait, 'life0: 'async_trait, Self: 'async_trait,

Parse a value of T from a form data field. Read more
source§

fn default() -> Option<Self>

Returns a default value, if any exists, to be used during lenient parsing when the form field is missing. Read more
source§

impl<'r> FromParam<'r> for Byte

Available on crate feature rocket only.
§

type Error = ParseError

The associated error to be returned if parsing/validation fails.
source§

fn from_param(v: &'r str) -> Result<Self, Self::Error>

Parses and validates an instance of Self from a path parameter string or returns an Error if parsing or validation fails.
source§

impl FromStr for Byte

source§

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

ignore_case is set to false. See Byte::parse_str.

§

type Err = ParseError

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

impl Hash for Byte

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Byte

source§

fn cmp(&self, other: &Byte) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<Byte> for u128

source§

fn eq(&self, other: &Byte) -> 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 PartialEq<Byte> for u64

source§

fn eq(&self, other: &Byte) -> 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 PartialEq<u128> for Byte

source§

fn eq(&self, other: &u128) -> 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 PartialEq<u64> for Byte

source§

fn eq(&self, other: &u64) -> 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 PartialEq for Byte

source§

fn eq(&self, other: &Byte) -> 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 PartialOrd<Byte> for u128

source§

fn partial_cmp(&self, other: &Byte) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl PartialOrd<Byte> for u64

source§

fn partial_cmp(&self, other: &Byte) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl PartialOrd<u128> for Byte

source§

fn partial_cmp(&self, other: &u128) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl PartialOrd<u64> for Byte

source§

fn partial_cmp(&self, other: &u64) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl PartialOrd for Byte

source§

fn partial_cmp(&self, other: &Byte) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Serialize for Byte

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 TryFrom<Byte> for u16

§

type Error = TryFromIntError

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

fn try_from(byte: Byte) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Byte> for u32

§

type Error = TryFromIntError

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

fn try_from(byte: Byte) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Byte> for u8

§

type Error = TryFromIntError

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

fn try_from(byte: Byte) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Byte> for usize

§

type Error = TryFromIntError

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

fn try_from(byte: Byte) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<f32> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: f32) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<f64> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: f64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<i128> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: i128) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<i16> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: i16) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<i32> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: i32) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<i64> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: i64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<i8> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: i8) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<isize> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: isize) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<u128> for Byte

§

type Error = ExceededBoundsError

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

fn try_from(value: u128) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for Byte

source§

impl Eq for Byte

source§

impl StructuralEq for Byte

source§

impl StructuralPartialEq for Byte

Auto Trait Implementations§

§

impl RefUnwindSafe for Byte

§

impl Send for Byte

§

impl Sync for Byte

§

impl Unpin for Byte

§

impl UnwindSafe for Byte

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
§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<'v, T> FromForm<'v> for T
where T: FromFormField<'v>,

§

type Context = FromFieldContext<'v, T>

The form guard’s parsing context.
source§

fn init(opts: Options) -> <T as FromForm<'v>>::Context

Initializes and returns the parsing context for Self.
source§

fn push_value(ctxt: &mut <T as FromForm<'v>>::Context, field: ValueField<'v>)

Processes the value field field.
source§

fn push_data<'life0, 'life1, 'async_trait>( ctxt: &'life0 mut FromFieldContext<'v, T>, field: DataField<'v, 'life1> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where 'v: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, T: 'async_trait,

Processes the data field field.
source§

fn finalize(ctxt: <T as FromForm<'v>>::Context) -> Result<T, Errors<'v>>

Finalizes parsing. Returns the parsed value when successful or collection of Errors otherwise.
source§

fn push_error(_ctxt: &mut Self::Context, _error: Error<'r>)

Processes the external form or field error _error. Read more
source§

fn default(opts: Options) -> Option<Self>

Returns a default value, if any, to use when a value is desired and parsing fails. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> IntoCollection<T> for T

§

fn into_collection<A>(self) -> SmallVec<A>
where A: Array<Item = T>,

Converts self into a collection.
§

fn mapped<U, F, A>(self, f: F) -> SmallVec<A>
where F: FnMut(T) -> U, A: Array<Item = U>,

§

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

§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

§Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Primary].

§Example
println!("{}", value.primary());
§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color::Fixed].

§Example
println!("{}", value.fixed(color));
§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color::Rgb].

§Example
println!("{}", value.rgb(r, g, b));
§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Black].

§Example
println!("{}", value.black());
§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Red].

§Example
println!("{}", value.red());
§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Green].

§Example
println!("{}", value.green());
§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Yellow].

§Example
println!("{}", value.yellow());
§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Blue].

§Example
println!("{}", value.blue());
§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Magenta].

§Example
println!("{}", value.magenta());
§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Cyan].

§Example
println!("{}", value.cyan());
§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color::White].

§Example
println!("{}", value.white());
§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightBlack].

§Example
println!("{}", value.bright_black());
§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightRed].

§Example
println!("{}", value.bright_red());
§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightGreen].

§Example
println!("{}", value.bright_green());
§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightYellow].

§Example
println!("{}", value.bright_yellow());
§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightBlue].

§Example
println!("{}", value.bright_blue());
§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightMagenta].

§Example
println!("{}", value.bright_magenta());
§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightCyan].

§Example
println!("{}", value.bright_cyan());
§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightWhite].

§Example
println!("{}", value.bright_white());
§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

§Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Primary].

§Example
println!("{}", value.on_primary());
§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color::Fixed].

§Example
println!("{}", value.on_fixed(color));
§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color::Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Black].

§Example
println!("{}", value.on_black());
§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Red].

§Example
println!("{}", value.on_red());
§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Green].

§Example
println!("{}", value.on_green());
§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Yellow].

§Example
println!("{}", value.on_yellow());
§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Blue].

§Example
println!("{}", value.on_blue());
§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Magenta].

§Example
println!("{}", value.on_magenta());
§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Cyan].

§Example
println!("{}", value.on_cyan());
§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color::White].

§Example
println!("{}", value.on_white());
§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightBlack].

§Example
println!("{}", value.on_bright_black());
§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightRed].

§Example
println!("{}", value.on_bright_red());
§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightGreen].

§Example
println!("{}", value.on_bright_green());
§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightBlue].

§Example
println!("{}", value.on_bright_blue());
§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightWhite].

§Example
println!("{}", value.on_bright_white());
§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling [Attribute] value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

§Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Bold].

§Example
println!("{}", value.bold());
§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Dim].

§Example
println!("{}", value.dim());
§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Italic].

§Example
println!("{}", value.italic());
§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute::Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute::RapidBlink].

§Example
println!("{}", value.rapid_blink());
§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Invert].

§Example
println!("{}", value.invert());
§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Conceal].

§Example
println!("{}", value.conceal());
§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Strike].

§Example
println!("{}", value.strike());
§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi [Quirk] value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

§Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Mask].

§Example
println!("{}", value.mask());
§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Wrap].

§Example
println!("{}", value.wrap());
§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Linger].

§Example
println!("{}", value.linger());
§

fn clear(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Clear].

§Example
println!("{}", value.clear());
§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Bright].

§Example
println!("{}", value.bright());
§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::OnBright].

§Example
println!("{}", value.on_bright());
§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the [Condition] value applies. Replaces any previous condition.

See the crate level docs for more details.

§Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new [Painted] with a default [Style]. Read more
§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

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