Trait core::fmt::Pointer [] [src]

pub trait Pointer {
    fn fmt(&self, &mut Formatter) -> Result;
}

Format trait for the p character.

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:

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

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

Implementing Pointer on a type:

fn main() { 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 write!(f, "{:p}", self as *const Length) } } let l = Length(42); println!("l is in memory here: {:p}", l); }
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

        write!(f, "{:p}", self as *const Length)
    }
}

let l = Length(42);

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

Required Methods

fn fmt(&self, &mut Formatter) -> Result

Formats the value using the given formatter.

Implementors