Explain use of display adapters

This commit is contained in:
Christopher Durham 2024-02-13 22:24:29 -05:00
parent 37b65339c8
commit 4dbd2562b4

View File

@ -633,6 +633,23 @@ pub(crate) mod macros {
/// [tostring]: ../../std/string/trait.ToString.html /// [tostring]: ../../std/string/trait.ToString.html
/// [tostring_function]: ../../std/string/trait.ToString.html#tymethod.to_string /// [tostring_function]: ../../std/string/trait.ToString.html#tymethod.to_string
/// ///
/// # Internationalization
///
/// Because a type only has 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.
///
/// [formatting traits]: ../../std/fmt/index.html#formatting-traits
/// [`Path::display`]: ../../std/path/struct.Path.html#method.display
///
/// # Examples /// # Examples
/// ///
/// Implementing `Display` on a type: /// Implementing `Display` on a type: