@@ -273,6 +273,8 @@ impl<'a> Display for Arguments<'a> {
273273///
274274/// Generally speaking, you should just `derive` a `Debug` implementation.
275275///
276+ /// When used with the alternate format specifier `#?`, the output is pretty-printed.
277+ ///
276278/// For more information on formatters, see [the module-level documentation][module].
277279///
278280/// [module]: ../index.html
@@ -314,13 +316,42 @@ impl<'a> Display for Arguments<'a> {
314316/// println!("The origin is: {:?}", origin);
315317/// ```
316318///
319+ /// This outputs:
320+ ///
321+ /// ```text
322+ /// The origin is: Point { x: 0, y: 0 }
323+ /// ```
324+ ///
317325/// There are a number of `debug_*` methods on `Formatter` to help you with manual
318326/// implementations, such as [`debug_struct`][debug_struct].
319327///
320328/// `Debug` implementations using either `derive` or the debug builder API
321329/// on `Formatter` support pretty printing using the alternate flag: `{:#?}`.
322330///
323331/// [debug_struct]: ../std/fmt/struct.Formatter.html#method.debug_struct
332+ ///
333+ /// Pretty printing with `#?`:
334+ ///
335+ /// ```
336+ /// #[derive(Debug)]
337+ /// struct Point {
338+ /// x: i32,
339+ /// y: i32,
340+ /// }
341+ ///
342+ /// let origin = Point { x: 0, y: 0 };
343+ ///
344+ /// println!("The origin is: {:#?}", origin);
345+ /// ```
346+ ///
347+ /// This outputs:
348+ ///
349+ /// ```text
350+ /// The origin is: Point {
351+ /// x: 0,
352+ /// y: 0
353+ /// }
354+ /// ```
324355#[ stable( feature = "rust1" , since = "1.0.0" ) ]
325356#[ rustc_on_unimplemented = "`{Self}` cannot be formatted using `:?`; if it is \
326357 defined in your crate, add `#[derive(Debug)]` or \
@@ -379,6 +410,8 @@ pub trait Display {
379410///
380411/// The `Octal` trait should format its output as a number in base-8.
381412///
413+ /// The alternate flag, `#`, adds a `0o` in front of the output.
414+ ///
382415/// For more information on formatters, see [the module-level documentation][module].
383416///
384417/// [module]: ../index.html
@@ -391,6 +424,7 @@ pub trait Display {
391424/// let x = 42; // 42 is '52' in octal
392425///
393426/// assert_eq!(format!("{:o}", x), "52");
427+ /// assert_eq!(format!("{:#o}", x), "0o52");
394428/// ```
395429///
396430/// Implementing `Octal` on a type:
@@ -423,6 +457,8 @@ pub trait Octal {
423457///
424458/// The `Binary` trait should format its output as a number in binary.
425459///
460+ /// The alternate flag, `#`, adds a `0b` in front of the output.
461+ ///
426462/// For more information on formatters, see [the module-level documentation][module].
427463///
428464/// [module]: ../index.html
@@ -435,6 +471,7 @@ pub trait Octal {
435471/// let x = 42; // 42 is '101010' in binary
436472///
437473/// assert_eq!(format!("{:b}", x), "101010");
474+ /// assert_eq!(format!("{:#b}", x), "0b101010");
438475/// ```
439476///
440477/// Implementing `Binary` on a type:
@@ -468,6 +505,8 @@ pub trait Binary {
468505/// The `LowerHex` trait should format its output as a number in hexidecimal, with `a` through `f`
469506/// in lower case.
470507///
508+ /// The alternate flag, `#`, adds a `0x` in front of the output.
509+ ///
471510/// For more information on formatters, see [the module-level documentation][module].
472511///
473512/// [module]: ../index.html
@@ -480,6 +519,7 @@ pub trait Binary {
480519/// let x = 42; // 42 is '2a' in hex
481520///
482521/// assert_eq!(format!("{:x}", x), "2a");
522+ /// assert_eq!(format!("{:#x}", x), "0x2a");
483523/// ```
484524///
485525/// Implementing `LowerHex` on a type:
@@ -513,6 +553,8 @@ pub trait LowerHex {
513553/// The `UpperHex` trait should format its output as a number in hexidecimal, with `A` through `F`
514554/// in upper case.
515555///
556+ /// The alternate flag, `#`, adds a `0x` in front of the output.
557+ ///
516558/// For more information on formatters, see [the module-level documentation][module].
517559///
518560/// [module]: ../index.html
@@ -525,6 +567,7 @@ pub trait LowerHex {
525567/// let x = 42; // 42 is '2A' in hex
526568///
527569/// assert_eq!(format!("{:X}", x), "2A");
570+ /// assert_eq!(format!("{:#X}", x), "0x2A");
528571/// ```
529572///
530573/// Implementing `UpperHex` on a type:
0 commit comments