Trait nom::lib::std::fmt::Pointer1.0.0[][src]

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

p formatting.

The Pointer trait should format its output as a memory location. This is commonly presented as hexadecimal.

For more information on formatters, see the module-level documentation.

Examples

Basic usage with &i32:

let x = &42;

let address = format!("{:p}", x); // this produces something like '0x7f06092ac6d0'

Implementing Pointer on a type:

use std::fmt;

struct Length(i32);

impl fmt::Pointer for Length {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        // use `as` to convert to a `*const T`, which implements Pointer, which we can use

        let ptr = self as *const Self;
        fmt::Pointer::fmt(&ptr, f)
    }
}

let l = Length(42);

println!("l is in memory here: {:p}", l);

let l_ptr = format!("{:018p}", l);
assert_eq!(l_ptr.len(), 18);
assert_eq!(&l_ptr[..2], "0x");

Required methods

Formats the value using the given formatter.

Implementations on Foreign Types

Implementors

impl<T: ?Sized + Pointable> Pointer for Atomic<T>

impl<T: ?Sized + Pointable> Pointer for Shared<'_, T>

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

impl<'a, Color: Color, T: Pointer> Pointer for FgColorDisplay<'a, Color, T>

impl<'a, Color: Color, T: Pointer> Pointer for BgColorDisplay<'a, Color, T>

impl<'a, Color: DynColor, T: Pointer> Pointer for FgDynColorDisplay<'a, Color, T>

impl<'a, Color: DynColor, T: Pointer> Pointer for BgDynColorDisplay<'a, Color, T>

impl<'a, Fg: Color, Bg: Color, T: Pointer> Pointer for ComboColorDisplay<'a, Fg, Bg, T>

impl<T: Pointer> Pointer for Styled<T>

impl<'a, T: Pointer> Pointer for BoldDisplay<'a, T>

impl<'a, T: Pointer> Pointer for DimDisplay<'a, T>

impl<'a, T: Pointer> Pointer for ItalicDisplay<'a, T>

impl<'a, T: Pointer> Pointer for UnderlineDisplay<'a, T>

impl<'a, T: Pointer> Pointer for BlinkDisplay<'a, T>

impl<'a, T: Pointer> Pointer for BlinkFastDisplay<'a, T>

impl<'a, T: Pointer> Pointer for ReversedDisplay<'a, T>

impl<'a, T: Pointer> Pointer for HiddenDisplay<'a, T>

impl<'a, T: Pointer> Pointer for StrikeThroughDisplay<'a, T>

impl<'a, In, Out, F> Pointer for SupportsColorsDisplay<'a, In, Out, F> where
    In: Pointer,
    Out: Pointer,
    F: Fn(&'a In) -> Out,