Trait sp_std::fmt::UpperHex

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

X formatting.

The UpperHex trait should format its output as a number in hexadecimal, with A through F in upper case.

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

The alternate flag, #, adds a 0x 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 '2A' in hex

assert_eq!(format!("{x:X}"), "2A");
assert_eq!(format!("{x:#X}"), "0x2A");

assert_eq!(format!("{:X}", -16), "FFFFFFF0");

Implementing UpperHex on a type:

use std::fmt;

struct Length(i32);

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

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

let l = Length(i32::MAX);

assert_eq!(format!("l as hex is: {l:X}"), "l as hex is: 7FFFFFFF");

assert_eq!(format!("l as hex is: {l:#010X}"), "l as hex is: 0x7FFFFFFF");

Required Methods§

Formats the value using the given formatter.

Implementors§

impl UpperHex for HexDisplay<'_>

impl UpperHex for Seed

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

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

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

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

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

impl UpperHex for Bytes

impl UpperHex for Limb

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

impl<const LIMBS: usize> UpperHex for UInt<LIMBS>

impl<T: UpperHex> UpperHex for Wrapping<T>

impl<C> UpperHex for Signature<C>where
    C: PrimeCurve,
    SignatureSize<C>: ArrayLength<u8>,

impl<C> UpperHex for ScalarCore<C>where
    C: Curve,

impl<C> UpperHex for NonZeroScalar<C>where
    C: Curve + ScalarArithmetic,

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

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

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

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

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

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

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

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

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

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

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

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

impl<T> UpperHex for GenericArray<u8, T>where
    T: Add<T> + ArrayLength<u8>,
    <T as Add<T>>::Output: ArrayLength<u8>,

impl UpperHex for bf16

impl UpperHex for f16

impl<T: AsRef<[u8]>> UpperHex for HexFmt<T>

impl<T> UpperHex for HexList<T>where
    T: Clone + IntoIterator,
    T::Item: AsRef<[u8]>,

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

impl UpperHex for BigInt

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

impl UpperHex for AtFlags

impl UpperHex for OFlag

impl UpperHex for FdFlag

impl UpperHex for MsFlags

impl UpperHex for SaFlags

impl UpperHex for SFlag

impl UpperHex for Mode

impl UpperHex for FsFlags

impl UpperHex for BigInt

impl UpperHex for BigUint

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

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

impl UpperHex for U128

impl UpperHex for U256

impl UpperHex for U512

impl UpperHex for H128

impl UpperHex for H160

impl UpperHex for H256

impl UpperHex for H384

impl UpperHex for H512

impl UpperHex for H768

impl UpperHex for FdFlags

impl UpperHex for Access

impl UpperHex for AtFlags

impl UpperHex for Mode

impl UpperHex for OFlags

impl<Size> UpperHex for EncodedPoint<Size>where
    Size: ModulusSize,

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

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

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

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

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

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

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

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

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