pub struct Bit(/* private fields */);bit and u128 only.Expand description
Representing the size in bits.
Implementations§
Source§impl Bit
Associated functions for generating AdjustedBit.
 
impl Bit
Associated functions for generating AdjustedBit.
Sourcepub fn get_adjusted_unit(self, unit: Unit) -> AdjustedBit
 
pub fn get_adjusted_unit(self, unit: Unit) -> AdjustedBit
Adjust the unit and value for this Bit instance.
§Examples
use byte_unit::{AdjustedBit, Bit, Unit};
let bit = Bit::parse_str("123Kib").unwrap();
let adjusted_bit = bit.get_adjusted_unit(Unit::Kbit);
assert_eq!("125.952 Kb", adjusted_bit.to_string());use byte_unit::{AdjustedBit, Bit, Unit};
let bit = Bit::parse_str("50.84 Mb").unwrap();
let adjusted_bit = bit.get_adjusted_unit(Unit::Mibit);
assert_eq!("48.48480224609375 Mib", adjusted_bit.to_string());Sourcepub fn get_appropriate_unit(&self, unit_type: UnitType) -> AdjustedBit
 
pub fn get_appropriate_unit(&self, unit_type: UnitType) -> AdjustedBit
Find the appropriate unit and value for this Bit instance.
§Examples
use byte_unit::{Bit, UnitType};
let bit = Bit::parse_str("123Kib").unwrap();
let adjusted_bit = bit.get_appropriate_unit(UnitType::Decimal);
assert_eq!("125.952 Kb", adjusted_bit.to_string());use byte_unit::{Bit, UnitType};
let bit = Bit::parse_str("50.84 Mb").unwrap();
let adjusted_bit = bit.get_appropriate_unit(UnitType::Binary);
assert_eq!("48.48480224609375 Mib", adjusted_bit.to_string());Source§impl Bit
Associated functions for building Bit instances using Decimal.
 
impl Bit
Associated functions for building Bit instances using Decimal.
Sourcepub fn from_decimal(size: Decimal) -> Option<Self>
 
pub fn from_decimal(size: Decimal) -> Option<Self>
Create a new Bit instance from a size in bits.
§Examples
use byte_unit::Bit;
use rust_decimal::Decimal;
let bit = Bit::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 u128feature is enabled, or 264 - 1 otherwise) or not greater than or equal to 0, this function will returnNone.
- The fractional part will be rounded up.
Source§impl Bit
Associated functions for building Bit instances using Decimal (with Unit).
 
impl Bit
Associated functions for building Bit instances using Decimal (with Unit).
Sourcepub fn from_decimal_with_unit(size: Decimal, unit: Unit) -> Option<Self>
 
pub fn from_decimal_with_unit(size: Decimal, unit: Unit) -> Option<Self>
Create a new Bit instance from a size of bits with a unit.
§Examples
use byte_unit::{Bit, Unit};
use rust_decimal::Decimal;
let bit = Bit::from_decimal_with_unit(Decimal::from(15u64), Unit::Mbit).unwrap(); // 15 Mb§Points to Note
- If the calculated bit is too large or not greater than or equal to 0, this function will return None.
- The calculated bit will be rounded up.
Source§impl Bit
Methods for finding an unit using Decimal.
 
impl Bit
Methods for finding an unit using Decimal.
Sourcepub fn get_recoverable_unit(
    self,
    allow_in_bytes: bool,
    precision: usize,
) -> (Decimal, Unit)
 
pub fn get_recoverable_unit( self, allow_in_bytes: bool, precision: usize, ) -> (Decimal, Unit)
Find the appropriate unit and value that can be used to recover back to this Bit precisely.
§Examples
use byte_unit::{Bit, Unit};
let bit = Bit::from_u64(3670016);
assert_eq!(
    (3.5f64.try_into().unwrap(), Unit::Mibit),
    bit.get_recoverable_unit(false, 3)
);use byte_unit::{Bit, Unit};
let bit = Bit::from_u64(28000000);
assert_eq!(
    (3.5f64.try_into().unwrap(), Unit::MB),
    bit.get_recoverable_unit(true, 3)
);use byte_unit::{Bit, Unit};
let bit = Bit::from_u64(437500);
assert_eq!(
    (437.5f64.try_into().unwrap(), Unit::Kbit),
    bit.get_recoverable_unit(false, 3)
);§Points to Note
- precisionshould be smaller or equal to- 26if the- u128feature is enabled, otherwise- 19. The typical- precisionis- 3.
Source§impl Bit
Associated functions for parsing strings.
 
impl Bit
Associated functions for parsing strings.
Sourcepub fn parse_str<S: AsRef<str>>(s: S) -> Result<Self, ParseError>
 
pub fn parse_str<S: AsRef<str>>(s: S) -> Result<Self, ParseError>
Create a new Bit instance from a string.
The string may be "10", "10B", "10M", "10MB", "10MiB", "80b", "80Mb", "80Mbit".
You can ignore the case of “B” (bit), which means b will still be treated as bits instead of bits.
§Examples
let bit = Bit::parse_str("123Kib").unwrap(); // 123 * 1024 bitsSource§impl Bit
Associated functions for building Bit instances.
 
impl Bit
Associated functions for building Bit instances.
Sourcepub const unsafe fn from_u128_unsafe(size: u128) -> Self
 
pub const unsafe fn from_u128_unsafe(size: u128) -> Self
Sourcepub const fn from_u64(size: u64) -> Self
 
pub const fn from_u64(size: u64) -> Self
Create a new Bit instance from a size in bits.
§Examples
let bit = Bit::from_u64(15000000); // 15 MbSourcepub fn from_f64(size: f64) -> Option<Self>
 
pub fn from_f64(size: f64) -> Option<Self>
Create a new Bit instance from a size in bits.
§Examples
let bit = Bit::from_f64(15000000.0).unwrap(); // 15 Mb§Points to Note
- If the input size is too large (the maximum is 1027 - 1 if the u128feature is enabled, or 264 - 1 otherwise) or not greater than or equal to 0, this function will returnNone.
- The fractional part will be rounded up.
Sourcepub fn from_f32(size: f32) -> Option<Self>
 
pub fn from_f32(size: f32) -> Option<Self>
Create a new Bit instance from a size in bits.
§Examples
let bit = Bit::from_f32(15000000.0).unwrap(); // 15 Mb§Points to Note
- If the input size is too large (the maximum is 1027 - 1 if the u128feature is enabled, or 264 - 1 otherwise) or not greater than or equal to 0, this function will returnNone.
- The fractional part will be rounded up.
Source§impl Bit
Associated functions for building Bit instances (with Unit).
 
impl Bit
Associated functions for building Bit instances (with Unit).
Sourcepub const fn from_u128_with_unit(size: u128, unit: Unit) -> Option<Self>
 
pub const fn from_u128_with_unit(size: u128, unit: Unit) -> Option<Self>
Sourcepub const fn from_u64_with_unit(size: u64, unit: Unit) -> Option<Self>
 
pub const fn from_u64_with_unit(size: u64, unit: Unit) -> Option<Self>
Create a new Bit instance from a size of bits with a unit.
§Examples
use byte_unit::{Bit, Unit};
let bit = Bit::from_u64_with_unit(15, Unit::Mbit).unwrap(); // 15 Mb§Points to Note
- If the calculated bit is too large, this function will return None.
- If the input unit is Bit, the calculated bit will be rounded up.
Sourcepub fn from_f64_with_unit(size: f64, unit: Unit) -> Option<Self>
 
pub fn from_f64_with_unit(size: f64, unit: Unit) -> Option<Self>
Create a new Bit instance from a size of bits with a unit.
§Examples
use byte_unit::{Bit, Unit};
let bit = Bit::from_f64_with_unit(15.0, Unit::Mbit).unwrap(); // 15 Mb§Points to Note
- If the calculated bit is too large or not greater than or equal to 0, this function will return None.
- The calculated bit will be rounded up.
Sourcepub fn from_f32_with_unit(size: f32, unit: Unit) -> Option<Self>
 
pub fn from_f32_with_unit(size: f32, unit: Unit) -> Option<Self>
Create a new Bit instance from a size of bits with a unit.
§Examples
use byte_unit::{Bit, Unit};
let bit = Bit::from_f32_with_unit(15.0, Unit::Mbit).unwrap(); // 15 Mb§Points to Note
- If the calculated bit is too large or not greater than or equal to 0, this function will return None.
- The calculated bit will be rounded up.
Sourcepub const fn from_i128_with_unit(size: i128, unit: Unit) -> Option<Self>
 
pub const fn from_i128_with_unit(size: i128, unit: Unit) -> Option<Self>
Sourcepub const fn from_i64_with_unit(size: i64, unit: Unit) -> Option<Self>
 
pub const fn from_i64_with_unit(size: i64, unit: Unit) -> Option<Self>
Source§impl Bit
Methods for converting a Bit instance into a primitive integer.
 
impl Bit
Methods for converting a Bit instance into a primitive integer.
Sourcepub const fn as_u128(self) -> u128
 
pub const fn as_u128(self) -> u128
Retrieve the bit represented by this Bit instance.
§Examples
use byte_unit::Bit;
let bit = Bit::parse_str("123KiB").unwrap();
let result = bit.as_u128();
assert_eq!(1007616, result);use byte_unit::Bit;
let bit = Bit::parse_str("123Kib").unwrap();
let result = bit.as_u128();
assert_eq!(125952, result);Sourcepub const fn as_u64(self) -> u64
 
pub const fn as_u64(self) -> u64
Retrieve the bit represented by this Bit instance. When the u128 feature is enabled, if the bit is actually greater than 264 - 1, it will return 264 - 1.
§Examples
use byte_unit::Bit;
let bit = Bit::parse_str("1kb").unwrap();
let result = bit.as_u64();
assert_eq!(1000, result);use byte_unit::Bit;
let bit = Bit::parse_str("1zb").unwrap();
let result = bit.as_u64();
assert_eq!(u64::MAX, result);Sourcepub const fn as_u64_checked(self) -> Option<u64>
 
pub const fn as_u64_checked(self) -> Option<u64>
Retrieve the bit represented by this Bit instance.
§Examples
use byte_unit::Bit;
let bit = Bit::parse_str("1k").unwrap();
let result = bit.as_u64_checked();
assert_eq!(Some(1000), result);use byte_unit::Bit;
let bit = Bit::parse_str("1zb").unwrap();
let result = bit.as_u64_checked();
assert_eq!(None, result);Source§impl Bit
Methods for calculation.
 
impl Bit
Methods for calculation.
Sourcepub const fn subtract(self, rhs: Bit) -> Option<Bit>
 
pub const fn subtract(self, rhs: Bit) -> Option<Bit>
Subtract another Bit instance.
§Examples
use byte_unit::Bit;
let bit_1 = Bit::from_u64(1024);
let bit_2 = Bit::from_u64(512);
let bit = bit_1.subtract(bit_2).unwrap();
assert_eq!(512, bit.as_u64());§Points to Note
- If the right-hand side is bigger then this Bitinstance, this function will returnNone.
Sourcepub const fn divide(self, rhs: usize) -> Option<Bit>
 
pub const fn divide(self, rhs: usize) -> Option<Bit>
Divided by an unsigned integer.
§Examples
use byte_unit::Bit;
let count = 100;
let bit = Bit::from_u64(1024);
let total_bit = bit.divide(100).unwrap();
assert_eq!(10, total_bit.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 Bit
Methods for finding an unit.
 
impl Bit
Methods for finding an unit.
Sourcepub const fn get_exact_unit(self, allow_in_bytes: bool) -> (u128, Unit)
 
pub const fn get_exact_unit(self, allow_in_bytes: bool) -> (u128, Unit)
Obtain the largest unit which is the greatest factor of this Bit instance.
§Examples
use byte_unit::{Bit, Unit};
let bit = Bit::from_u64(3145728);
let (n, unit) = bit.get_exact_unit(true);
assert_eq!(3, n);
assert_eq!(Unit::Mibit, unit);use byte_unit::{Bit, Unit};
let bit = Bit::from_u64(24000000);
let (n, unit) = bit.get_exact_unit(true);
assert_eq!(3, n);
assert_eq!(Unit::MB, unit);use byte_unit::{Bit, Unit};
let bit = Bit::from_u64(24000000);
let (n, unit) = bit.get_exact_unit(false);
assert_eq!(24, n);
assert_eq!(Unit::Mbit, unit);Trait Implementations§
Source§impl<'de> Deserialize<'de> for Bit
Available on crate feature serde only. 
impl<'de> Deserialize<'de> for Bit
serde only.Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
    D: Deserializer<'de>,
 
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
    D: Deserializer<'de>,
Source§impl Display for Bit
 
impl Display for Bit
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
 
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the value using the given formatter.
§Examples
use byte_unit::{Bit, Unit};
let bit = Bit::from_u64_with_unit(1555, Unit::Kbit).unwrap();
assert_eq!("1555000", bit.to_string());use byte_unit::{Bit, UnitType};
let bit_based_2 = Bit::from_u64(10240);
let bit_based_10 = Bit::from_u64(10000);
assert_eq!("10240", format!("{bit_based_2}"));
assert_eq!("10000", format!("{bit_based_10}"));
// with an exact unit
assert_eq!("10 Kib", format!("{bit_based_2:#}"));
assert_eq!("10 Kb", format!("{bit_based_10:#}"));
// with an exact unit, no spaces between the value and the unit
assert_eq!("10Kib", format!("{bit_based_2:-#}"));
assert_eq!("10Kb", format!("{bit_based_10:-#}"));
// with a width, left alignment
assert_eq!("10     Kib", format!("{bit_based_2:#10}"));
assert_eq!("10      Kb", format!("{bit_based_10:#10}"));
// with a width, right alignment
assert_eq!("    10 Kib", format!("{bit_based_2:>#10}"));
assert_eq!("     10 Kb", format!("{bit_based_10:>#10}"));
// with a width, right alignment, more spaces between the value and the unit
assert_eq!("    10 Kib", format!("{bit_based_2:>+#10}"));
assert_eq!("    10  Kb", format!("{bit_based_10:>+#10}"));use byte_unit::{Bit, UnitType};
let bit = Bit::from_u64(3211776);
assert_eq!("3211776", format!("{bit}"));
// with a unit, still precisely
assert_eq!("3136.5 Kib", format!("{bit:#}"));
// with a unit and a larger precision (default is 3), still precisely
assert_eq!("3.211776 Mb", format!("{bit:#.6}"));
// with a unit and a smaller precision (default is 3), still precisely
assert_eq!("3211776 b", format!("{bit:#.0}"));Source§impl From<AdjustedBit> for Bit
 
impl From<AdjustedBit> for Bit
Source§fn from(value: AdjustedBit) -> Self
 
fn from(value: AdjustedBit) -> Self
Source§impl From<Bit> for AdjustedBit
 
impl From<Bit> for AdjustedBit
Source§fn from(value: Bit) -> Self
 
fn from(value: Bit) -> Self
unit_type is set to UnitType::Both. See Bit::get_appropriate_unit.
Source§impl<'r> FromFormField<'r> for Bit
Available on crate feature rocket only. 
impl<'r> FromFormField<'r> for Bit
rocket only.Source§fn from_value(v: ValueField<'r>) -> Result<'r, Self>
 
fn from_value(v: ValueField<'r>) -> Result<'r, Self>
T from a form value field. Read moreSource§impl<'r> FromParam<'r> for Bit
Available on crate feature rocket only. 
impl<'r> FromParam<'r> for Bit
rocket only.Source§type Error = ParseError
 
type Error = ParseError
Source§impl Ord for Bit
 
impl Ord for Bit
Source§impl PartialOrd<Bit> for u128
 
impl PartialOrd<Bit> for u128
Source§impl PartialOrd<Bit> for u64
 
impl PartialOrd<Bit> for u64
Source§impl PartialOrd<u128> for Bit
 
impl PartialOrd<u128> for Bit
Source§impl PartialOrd<u64> for Bit
 
impl PartialOrd<u64> for Bit
Source§impl PartialOrd for Bit
 
impl PartialOrd for Bit
impl Copy for Bit
impl Eq for Bit
impl StructuralPartialEq for Bit
Auto Trait Implementations§
impl Freeze for Bit
impl RefUnwindSafe for Bit
impl Send for Bit
impl Sync for Bit
impl Unpin for Bit
impl UnwindSafe for Bit
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<Q, K> Comparable<K> for Q
 
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<'v, T> FromForm<'v> for Twhere
    T: FromFormField<'v>,
 
impl<'v, T> FromForm<'v> for Twhere
    T: FromFormField<'v>,
Source§fn init(opts: Options) -> <T as FromForm<'v>>::Context
 
fn init(opts: Options) -> <T as FromForm<'v>>::Context
Self.Source§fn push_value(ctxt: &mut <T as FromForm<'v>>::Context, field: ValueField<'v>)
 
fn push_value(ctxt: &mut <T as FromForm<'v>>::Context, field: ValueField<'v>)
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,
 
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,
field.Source§fn finalize(ctxt: <T as FromForm<'v>>::Context) -> Result<T, Errors<'v>>
 
fn finalize(ctxt: <T as FromForm<'v>>::Context) -> Result<T, Errors<'v>>
Errors otherwise.Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoCollection<T> for T
 
impl<T> IntoCollection<T> for T
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
    T: ?Sized,
 
impl<T> Paint for Twhere
    T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
 
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();Source§fn bright_black(&self) -> Painted<&T>
 
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
 
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
 
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
 
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
 
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
 
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
 
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
 
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
 
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();Source§fn on_primary(&self) -> Painted<&T>
 
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
 
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
 
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
 
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
 
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
 
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
 
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
 
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
 
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
 
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
 
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();Source§fn rapid_blink(&self) -> Painted<&T>
 
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
 
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();Source§fn clear(&self) -> Painted<&T>
 👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
 
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);