pub trait Display {
// Required method
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}
Expand description
Format trait for an empty format, {}
.
Implementing this trait for a type will automatically implement the
ToString
trait for the type, allowing the usage
of the .to_string()
method. Prefer implementing
the Display
trait for a type, rather than ToString
.
Display
is similar to Debug
, but Display
is for user-facing
output, and so cannot be derived.
For more information on formatters, see the module-level documentation.
§Completeness and parseability
Display
for a type might not necessarily be a lossless or complete representation of the type.
It may omit internal state, precision, or other information the type does not consider important
for user-facing output, as determined by the type. As such, the output of Display
might not be
possible to parse, and even if it is, the result of parsing might not exactly match the original
value.
However, if a type has a lossless Display
implementation whose output is meant to be
conveniently machine-parseable and not just meant for human consumption, then the type may wish
to accept the same format in FromStr
, and document that usage. Having both Display
and
FromStr
implementations where the result of Display
cannot be parsed with FromStr
may
surprise users.
§Internationalization
Because a type can only have one Display
implementation, it is often preferable
to only implement Display
when there is a single most “obvious” way that
values can be formatted as text. This could mean formatting according to the
“invariant” culture and “undefined” locale, or it could mean that the type
display is designed for a specific culture/locale, such as developer logs.
If not all values have a justifiably canonical textual format or if you want
to support alternative formats not covered by the standard set of possible
formatting traits, the most flexible approach is display adapters: methods
like str::escape_default
or Path::display
which create a wrapper
implementing Display
to output the specific display format.
§Examples
Implementing Display
on a type:
use std::fmt;
struct Point {
x: i32,
y: i32,
}
impl fmt::Display for Point {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "({}, {})", self.x, self.y)
}
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {origin}"), "The origin is: (0, 0)");
Required Methods§
1.0.0 · Sourcefn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Formats the value using the given formatter.
§Errors
This function should return Err
if, and only if, the provided Formatter
returns Err
.
String formatting is considered an infallible operation; this function only
returns a Result
because writing to the underlying stream might fail and it must
provide a way to propagate the fact that an error has occurred back up the stack.
§Examples
use std::fmt;
struct Position {
longitude: f32,
latitude: f32,
}
impl fmt::Display for Position {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "({}, {})", self.longitude, self.latitude)
}
}
assert_eq!(
"(1.987, 2.983)",
format!("{}", Position { longitude: 1.987, latitude: 2.983, }),
);
Implementors§
impl Display for AddressBech32DecodeError
impl Display for AddressBech32EncodeError
impl Display for ParseBlsPublicKeyError
impl Display for ParseBlsSignatureError
impl Display for ParseEd25519PublicKeyError
impl Display for ParseEd25519SignatureError
impl Display for ParseHashError
impl Display for ParseSecp256k1PublicKeyError
impl Display for ParseSecp256k1SignatureError
impl Display for ParseManifestAddressReservationError
impl Display for ParseManifestBlobRefError
impl Display for ParseManifestBucketError
impl Display for ParseManifestDecimalError
impl Display for ParseManifestExpressionError
impl Display for ParseManifestPreciseDecimalError
impl Display for ParseManifestProofError
impl Display for NonFungibleLocalId
impl Display for ParseNonFungibleLocalIdError
impl Display for ParseOwnError
impl Display for ParseReferenceError
impl Display for ParseI192Error
impl Display for ParseI256Error
impl Display for ParseI320Error
impl Display for ParseI384Error
impl Display for ParseI448Error
impl Display for ParseI512Error
impl Display for ParseI768Error
impl Display for ParseU192Error
impl Display for ParseU256Error
impl Display for ParseU320Error
impl Display for ParseU384Error
impl Display for ParseU448Error
impl Display for ParseU512Error
impl Display for ParseU768Error
impl Display for ParseDecimalError
impl Display for ParsePreciseDecimalError
impl Display for DateTimeError
impl Display for ParseUtcDateTimeError
impl Display for ParseComponentAddressError
impl Display for ParseGlobalAddressError
impl Display for ParseInternalAddressError
impl Display for ParseNonFungibleGlobalIdError
impl Display for ParsePackageAddressError
impl Display for ParseResourceAddressError
impl Display for AsciiChar
impl Display for FromBytesWithNulError
impl Display for IpAddr
impl Display for SocketAddr
impl Display for VarError
impl Display for std::fs::TryLockError
impl Display for ErrorKind
impl Display for bech32::Error
impl Display for FromHexError
impl Display for radix_common::prelude::indexmap::GetDisjointMutError
impl Display for Infallible
impl Display for radix_common::prelude::rust::slice::GetDisjointMutError
impl Display for RecvTimeoutError
impl Display for TryRecvError
impl Display for bool
impl Display for char
impl Display for f16
impl Display for f32
impl Display for f64
impl Display for i8
impl Display for i16
impl Display for i32
impl Display for i64
impl Display for i128
impl Display for isize
impl Display for !
impl Display for str
impl Display for u8
impl Display for u16
impl Display for u32
impl Display for u64
impl Display for u128
impl Display for usize
impl Display for Bls12381G1PublicKey
impl Display for Bls12381G2Signature
impl Display for Ed25519PublicKey
impl Display for Ed25519Signature
impl Display for Hash
impl Display for Secp256k1PublicKey
impl Display for Secp256k1Signature
impl Display for I192
impl Display for I256
impl Display for I320
impl Display for I384
impl Display for I448
impl Display for I512
impl Display for I768
impl Display for U192
impl Display for U256
impl Display for U320
impl Display for U384
impl Display for U448
impl Display for U512
impl Display for U768
impl Display for Decimal
impl Display for PreciseDecimal
impl Display for UtcDateTime
impl Display for UnorderedKeyError
impl Display for Arguments<'_>
impl Display for radix_common::prelude::fmt::Error
impl Display for ByteString
impl Display for alloc::collections::TryReserveError
impl Display for FromVecWithNulError
impl Display for IntoStringError
impl Display for NulError
impl Display for TryFromSliceError
impl Display for core::ascii::EscapeDefault
impl Display for ByteStr
impl Display for CharTryFromError
impl Display for ParseCharError
impl Display for DecodeUtf16Error
impl Display for core::char::EscapeDebug
impl Display for core::char::EscapeDefault
impl Display for core::char::EscapeUnicode
impl Display for ToLowercase
impl Display for ToUppercase
impl Display for TryFromCharError
impl Display for FromBytesUntilNulError
impl Display for Ipv4Addr
impl Display for Ipv6Addr
Writes an Ipv6Addr, conforming to the canonical style described by RFC 5952.