Trait bitcoin_private::hex::display::DisplayHex
source · pub trait DisplayHex: Copy + IsRef {
type Display: LowerHex + UpperHex;
// Required method
fn as_hex(self) -> Self::Display;
// Provided methods
fn to_lower_hex_string(self) -> String { ... }
fn to_upper_hex_string(self) -> String { ... }
fn to_hex_string(self, case: Case) -> String { ... }
fn append_hex_to_string(self, case: Case, string: &mut String) { ... }
fn hex_reserve_suggestion(self) -> usize { ... }
}
Expand description
Extension trait for types that can be displayed as hex.
Types that have a single, obvious text representation being hex should not implement this
trait and simply implement Display
instead.
This trait should be generally implemented for references only. We would prefer to use GAT but
that is beyond our MSRV. As a lint we require the IsRef
trait which is implemented for all
references.
Required Associated Types§
sourcetype Display: LowerHex + UpperHex
type Display: LowerHex + UpperHex
The type providing fmt::Display
implementation.
This is usually a wrapper type holding a reference to Self
.
Required Methods§
Provided Methods§
sourcefn to_lower_hex_string(self) -> String
fn to_lower_hex_string(self) -> String
alloc
only.Create a lower-hex-encoded string.
A shorthand for to_hex_string(Case::Lower)
, so that Case
doesn’t need to be imported.
This may be faster than .display_hex().to_string()
because it uses reserve_suggestion
.
sourcefn to_upper_hex_string(self) -> String
fn to_upper_hex_string(self) -> String
alloc
only.Create an upper-hex-encoded string.
A shorthand for to_hex_string(Case::Upper)
, so that Case
doesn’t need to be imported.
This may be faster than .display_hex().to_string()
because it uses reserve_suggestion
.
sourcefn to_hex_string(self, case: Case) -> String
fn to_hex_string(self, case: Case) -> String
alloc
only.Create a hex-encoded string.
This may be faster than .display_hex().to_string()
because it uses reserve_suggestion
.
sourcefn append_hex_to_string(self, case: Case, string: &mut String)
fn append_hex_to_string(self, case: Case, string: &mut String)
alloc
only.Appends hex-encoded content to an existing String
.
This may be faster than write!(string, "{:x}", self.display_hex())
because it uses
reserve_sugggestion
.
sourcefn hex_reserve_suggestion(self) -> usize
fn hex_reserve_suggestion(self) -> usize
Hints how much bytes to reserve when creating a String
.
Implementors that know the number of produced bytes upfront should override this. Defaults to 0.
Implementations on Foreign Types§
source§impl<'a> DisplayHex for &'a [u8; 32]
impl<'a> DisplayHex for &'a [u8; 32]
source§impl<'a> DisplayHex for &'a [u8; 128]
impl<'a> DisplayHex for &'a [u8; 128]
source§impl<'a> DisplayHex for &'a [u8; 14]
impl<'a> DisplayHex for &'a [u8; 14]
source§impl<'a> DisplayHex for &'a [u8; 256]
impl<'a> DisplayHex for &'a [u8; 256]
source§impl<'a> DisplayHex for &'a [u8; 20]
impl<'a> DisplayHex for &'a [u8; 20]
source§impl<'a> DisplayHex for &'a [u8; 8]
impl<'a> DisplayHex for &'a [u8; 8]
source§impl<'a> DisplayHex for &'a [u8; 16]
impl<'a> DisplayHex for &'a [u8; 16]
source§impl<'a> DisplayHex for &'a [u8; 1024]
impl<'a> DisplayHex for &'a [u8; 1024]
source§impl<'a> DisplayHex for &'a [u8; 65]
impl<'a> DisplayHex for &'a [u8; 65]
source§impl<'a> DisplayHex for &'a [u8; 13]
impl<'a> DisplayHex for &'a [u8; 13]
source§impl<'a> DisplayHex for &'a [u8; 10]
impl<'a> DisplayHex for &'a [u8; 10]
source§impl<'a> DisplayHex for &'a Vec<u8>
Available on crate feature alloc
only.
impl<'a> DisplayHex for &'a Vec<u8>
alloc
only.