Trait sp_std::fmt::Pointer1.0.0[][src]

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

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

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src][]

Formats the value using the given formatter.

Implementations on Foreign Types

impl<Ret, A> Pointer for unsafe extern "C" fn(A, ...) -> Ret[src][]

impl<Ret, A, B, C, D> Pointer for extern "C" fn(A, B, C, D) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret[src][]

impl<Ret, A> Pointer for unsafe extern "C" fn(A) -> Ret[src][]

impl<Ret, A> Pointer for extern "C" fn(A) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Pointer for fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src][]

impl<Ret, A, B, C, D, E> Pointer for fn(A, B, C, D, E) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G> Pointer for fn(A, B, C, D, E, F, G) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src][]

impl<Ret, A, B, C, D, E> Pointer for unsafe extern "C" fn(A, B, C, D, E) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H> Pointer for fn(A, B, C, D, E, F, G, H) -> Ret[src][]

impl<Ret, A, B, C, D, E, F> Pointer for extern "C" fn(A, B, C, D, E, F) -> Ret[src][]

impl<Ret, A, B, C, D, E, F> Pointer for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret[src][]

impl<Ret, A, B, C, D, E> Pointer for unsafe fn(A, B, C, D, E) -> Ret[src][]

impl<Ret, A, B, C, D> Pointer for extern "C" fn(A, B, C, D, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E> Pointer for extern "C" fn(A, B, C, D, E, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret[src][]

impl<Ret, A> Pointer for fn(A) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Pointer for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Pointer for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src][]

impl<Ret> Pointer for extern "C" fn() -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G> Pointer for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret[src][]

impl<Ret, A, B> Pointer for extern "C" fn(A, B) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Pointer for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src][]

impl<'_, T> Pointer for &'_ mut T where
    T: ?Sized
[src][]

impl<Ret, A, B, C, D, E, F, G> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E> Pointer for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret[src][]

impl<Ret, A, B, C> Pointer for unsafe fn(A, B, C) -> Ret[src][]

impl<Ret, A, B> Pointer for unsafe extern "C" fn(A, B, ...) -> Ret[src][]

impl<T> Pointer for *mut T where
    T: ?Sized
[src][]

impl<'_, T> Pointer for &'_ T where
    T: ?Sized
[src][]

impl<Ret, A> Pointer for unsafe fn(A) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G> Pointer for unsafe fn(A, B, C, D, E, F, G) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I> Pointer for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret[src][]

impl<Ret, A, B, C, D> Pointer for fn(A, B, C, D) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret[src][]

impl<Ret, A, B> Pointer for unsafe fn(A, B) -> Ret[src][]

impl<Ret> Pointer for fn() -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src][]

impl<Ret> Pointer for unsafe fn() -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Pointer for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I> Pointer for fn(A, B, C, D, E, F, G, H, I) -> Ret[src][]

impl<Ret, A, B, C, D, E> Pointer for extern "C" fn(A, B, C, D, E) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H> Pointer for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret[src][]

impl<Ret, A, B> Pointer for extern "C" fn(A, B, ...) -> Ret[src][]

impl<Ret> Pointer for unsafe extern "C" fn() -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret[src][]

impl<Ret, A> Pointer for extern "C" fn(A, ...) -> Ret[src][]

impl<T> Pointer for *const T where
    T: ?Sized
[src][]

impl<Ret, A, B, C, D> Pointer for unsafe fn(A, B, C, D) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret[src][]

impl<Ret, A, B, C> Pointer for unsafe extern "C" fn(A, B, C, ...) -> Ret[src][]

impl<Ret, A, B, C> Pointer for extern "C" fn(A, B, C, ...) -> Ret[src][]

impl<Ret, A, B, C> Pointer for unsafe extern "C" fn(A, B, C) -> Ret[src][]

impl<Ret, A, B, C, D, E, F> Pointer for unsafe fn(A, B, C, D, E, F) -> Ret[src][]

impl<Ret, A, B, C, D, E, F> Pointer for extern "C" fn(A, B, C, D, E, F, ...) -> Ret[src][]

impl<Ret, A, B> Pointer for unsafe extern "C" fn(A, B) -> Ret[src][]

impl<Ret, A, B, C, D> Pointer for unsafe extern "C" fn(A, B, C, D, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H> Pointer for unsafe fn(A, B, C, D, E, F, G, H) -> Ret[src][]

impl<Ret, A, B> Pointer for fn(A, B) -> Ret[src][]

impl<Ret, A, B, C> Pointer for extern "C" fn(A, B, C) -> Ret[src][]

impl<Ret, A, B, C, D> Pointer for unsafe extern "C" fn(A, B, C, D) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Pointer for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src][]

impl<Ret, A, B, C, D, E, F> Pointer for fn(A, B, C, D, E, F) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G> Pointer for extern "C" fn(A, B, C, D, E, F, G) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Pointer for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src][]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Pointer for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src][]

impl<Ret, A, B, C> Pointer for fn(A, B, C) -> Ret[src][]

impl<P> Pointer for Pin<P> where
    P: Pointer
[src][]

Implementors

impl<T> Pointer for NonNull<T> where
    T: ?Sized
1.25.0[src][+]

impl<T> Pointer for Rc<T> where
    T: ?Sized
[src][+]

impl<T> Pointer for AtomicPtr<T>1.24.0[src][+]

impl<T> Pointer for Arc<T> where
    T: ?Sized
[src][+]

impl<T, A> Pointer for Box<T, A> where
    T: ?Sized,
    A: Allocator
[src][+]

impl<M, T> Pointer for Address<M, T> where
    M: Mutability,
    T: BitStore

impl<M, O, T> Pointer for BitRef<'_, M, O, T> where
    M: Mutability,
    O: BitOrder,
    T: BitStore

impl<M, O, T> Pointer for BitPtr<M, O, T> where
    M: Mutability,
    O: BitOrder,
    T: BitStore

impl<O, T> Pointer for BitBox<O, T> where
    O: BitOrder,
    T: BitStore

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

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

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

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

impl<N, R: Dim, C: Dim, S> Pointer for Matrix<N, R, C, S> where
    N: Scalar + Pointer,
    S: Storage<N, R, C>,
    DefaultAllocator: Allocator<usize, R, C>, 

impl<A: Array> Pointer for ArrayVec<A> where
    A::Item: Pointer

impl<'s, T> Pointer for SliceVec<'s, T> where
    T: Pointer

impl<A: Array> Pointer for TinyVec<A> where
    A::Item: Pointer

impl<T: Binary + Pointer> Pointer for FmtBinary<T>

impl<T: Display + Pointer> Pointer for FmtDisplay<T>

impl<T: LowerExp + Pointer> Pointer for FmtLowerExp<T>

impl<T: LowerHex + Pointer> Pointer for FmtLowerHex<T>

impl<T: Octal + Pointer> Pointer for FmtOctal<T>

impl<T: Pointer> Pointer for FmtPointer<T>

impl<T: UpperExp + Pointer> Pointer for FmtUpperExp<T>

impl<T: UpperHex + Pointer> Pointer for FmtUpperHex<T>