Trait std::fmt::Pointer
[−]
[src]
pub trait Pointer { fn fmt(&self, &mut Formatter) -> Result<(), Error>; }
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
:
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 write!(f, "{:p}", self as *const Length) } } let l = Length(42); println!("l is in memory here: {:p}", l);
Required Methods
Implementors
impl<T> Pointer for *mut T where T: ?Sized
impl<T> Pointer for *const T where T: ?Sized
impl<T> Pointer for Unique<T>
impl<T> Pointer for Shared<T>
impl<T> Pointer for Box<T> where T: ?Sized
impl<T> Pointer for Rc<T> where T: ?Sized
impl<T> Pointer for Arc<T> where T: ?Sized
impl<T: ?Sized> Pointer for Box<T>
impl<T: ?Sized> Pointer for Arc<T>
impl<T: ?Sized> Pointer for Rc<T>