Trait sp_std::fmt::Binary

1.0.0 · source ·
pub trait Binary {
    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}
Expand description

b formatting.

The Binary trait should format its output as a number in binary.

For primitive signed integers (i8 to i128, and isize), negative values are formatted as the two’s complement representation.

The alternate flag, #, adds a 0b in front of the output.

For more information on formatters, see the module-level documentation.

Examples

Basic usage with i32:

let x = 42; // 42 is '101010' in binary

assert_eq!(format!("{x:b}"), "101010");
assert_eq!(format!("{x:#b}"), "0b101010");

assert_eq!(format!("{:b}", -16), "11111111111111111111111111110000");

Implementing Binary on a type:

use std::fmt;

struct Length(i32);

impl fmt::Binary for Length {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let val = self.0;

        fmt::Binary::fmt(&val, f) // delegate to i32's implementation
    }
}

let l = Length(107);

assert_eq!(format!("l as binary is: {l:b}"), "l as binary is: 1101011");

assert_eq!(
    format!("l as binary is: {l:#032b}"),
    "l as binary is: 0b000000000000000000000001101011"
);

Required Methods§

Formats the value using the given formatter.

Implementors§

impl<A, O> Binary for BitArray<A, O>where
    O: BitOrder,
    A: BitViewSized,

impl<T, O> Binary for BitBox<T, O>where
    O: BitOrder,
    T: BitStore,

impl<'a, T, O> Binary for Domain<'a, Const, T, O>where
    O: BitOrder,
    T: BitStore,

impl<R> Binary for BitIdx<R>where
    R: BitRegister,

impl<R> Binary for BitEnd<R>where
    R: BitRegister,

impl<R> Binary for BitPos<R>where
    R: BitRegister,

impl<R> Binary for BitSel<R>where
    R: BitRegister,

impl<R> Binary for BitMask<R>where
    R: BitRegister,

impl<T, O> Binary for BitSlice<T, O>where
    T: BitStore,
    O: BitOrder,

impl<T, O> Binary for BitVec<T, O>where
    O: BitOrder,
    T: BitStore,

impl<T> Binary for NonZero<T>where
    T: Binary + Zero,

impl<T: Binary> Binary for Wrapping<T>

impl<T> Binary for BitFlags<T>where
    T: BitFlag,
    T::Numeric: Binary,

impl<'a, T: Binary> Binary for StyledValue<'a, T>

impl<Frac: LeEqU8> Binary for FixedU8<Frac>

impl<Frac: LeEqU16> Binary for FixedU16<Frac>

impl<Frac: LeEqU32> Binary for FixedU32<Frac>

impl<Frac: LeEqU64> Binary for FixedU64<Frac>

impl<Frac: LeEqU128> Binary for FixedU128<Frac>

impl<Frac: LeEqU8> Binary for FixedI8<Frac>

impl<Frac: LeEqU16> Binary for FixedI16<Frac>

impl<Frac: LeEqU32> Binary for FixedI32<Frac>

impl<Frac: LeEqU64> Binary for FixedI64<Frac>

impl<Frac: LeEqU128> Binary for FixedI128<Frac>

impl Binary for bf16

impl Binary for f16

impl<'a, I> Binary for Format<'a, I>where
    I: Iterator,
    I::Item: Binary,

impl Binary for BigInt

impl<T, R: Dim, C: Dim, S> Binary for Matrix<T, R, C, S>where
    T: Scalar + Binary,
    S: Storage<T, R, C>,
    DefaultAllocator: Allocator<usize, R, C>,

impl Binary for RuleFlags

impl Binary for AtFlags

impl Binary for OFlag

impl Binary for SealFlag

impl Binary for FdFlag

impl Binary for MsFlags

impl Binary for MntFlags

impl Binary for SaFlags

impl Binary for SfdFlags

impl Binary for SFlag

impl Binary for Mode

impl Binary for FsFlags

impl Binary for BigInt

impl Binary for BigUint

impl<T> Binary for Complex<T>where
    T: Binary + Num + PartialOrd + Clone,

impl<T: Binary + Clone + Integer> Binary for Ratio<T>

impl Binary for FdFlags

impl Binary for Access

impl Binary for AtFlags

impl Binary for Mode

impl Binary for OFlags

impl Binary for SealFlags

impl Binary for PollFlags

impl Binary for DupFlags

impl Binary for PipeFlags

impl Binary for ProtFlags

impl Binary for MapFlags

impl<A: Array> Binary for ArrayVec<A>where
    A::Item: Binary,

impl<'s, T> Binary for SliceVec<'s, T>where
    T: Binary,

impl<A: Array> Binary for TinyVec<A>where
    A::Item: Binary,

impl Binary for FilterId

impl<T: Binary> Binary for FmtBinary<T>

impl<T: Display + Binary> Binary for FmtDisplay<T>

impl<T: LowerExp + Binary> Binary for FmtLowerExp<T>

impl<T: LowerHex + Binary> Binary for FmtLowerHex<T>

impl<T: Octal + Binary> Binary for FmtOctal<T>

impl<T: Pointer + Binary> Binary for FmtPointer<T>

impl<T: UpperExp + Binary> Binary for FmtUpperExp<T>

impl<T: UpperHex + Binary> Binary for FmtUpperHex<T>

impl<T> Binary for FmtList<T>where
    for<'a> &'a T: IntoIterator,
    for<'a> <&'a T as IntoIterator>::Item: Binary,