Trait frame_support::dispatch::fmt::Pointer
1.0.0 · source · 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!("{x:p}"); // 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: {l:p}");
let l_ptr = format!("{l:018p}");
assert_eq!(l_ptr.len(), 18);
assert_eq!(&l_ptr[..2], "0x");
Required Methods§
Implementors§
impl<'a, I> Pointer for Format<'a, I>where
I: Iterator,
<I as Iterator>::Item: Pointer,
impl<'a, T> Pointer for StyledValue<'a, T>where
T: Pointer,
impl<'s, T> Pointer for SliceVec<'s, T>where
T: Pointer,
impl<A> Pointer for TinyVec<A>where
A: Array,
<A as Array>::Item: Pointer,
impl<A> Pointer for ArrayVec<A>where
A: Array,
<A as Array>::Item: Pointer,
impl<M, T> Pointer for Address<M, T>where
M: Mutability,
T: ?Sized,
impl<M, T, O> Pointer for BitRef<'_, M, T, O>where
M: Mutability,
T: BitStore,
O: BitOrder,
impl<M, T, O> Pointer for BitPtr<M, T, O>where
M: Mutability,
T: BitStore,
O: BitOrder,
impl<P> Pointer for Pin<P>where
P: Pointer,
impl<Ret, T> Pointer for fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for extern "C" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for extern "C" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for extern "C-unwind" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for extern "C-unwind" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for unsafe fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for unsafe extern "C" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for unsafe extern "C" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for unsafe extern "C-unwind" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Pointer for unsafe extern "C-unwind" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.