Struct pelite::pe32::Ptr[][src]

pub struct Ptr<T: ?Sized = ()>(_, _);

Typed virtual address.

Methods

impl<T: ?Sized> Ptr<T>
[src]

Creates a null pointer.

Returns true if the pointer is null.

Casts the pointer to a different type keeping the pointer address fixed.

Offset and cast the pointer.

Access nearby values (such as data members) by offsetting and casting the pointer.

Because the type of the current and the target may be unrelated, this is a byte offset.

Examples

use pelite::pe64::Ptr;

#[repr(C)]
struct Composite {
    int: i32,
    float: f32,
}

let p: Ptr<Composite> = Ptr::from(0x2000);
let target: Ptr<f32> = p.shift(4);

assert_eq!(target, Ptr::from(0x2004));

Simply formats the pointer.

Examples

use std::str;
use pelite::pe32::Ptr;

let p: Ptr<i32> = Ptr::from(0x1f00);
let fmts = p.fmt();

// Guaranteed to be safe
let s = unsafe { str::from_utf8_unchecked(&fmts) };
assert_eq!(s, "0x00001f00");

Trait Implementations

impl<T: ?Sized + 'static> Pod for Ptr<T>
[src]

impl<T: ?Sized> Send for Ptr<T>
[src]

impl<T: ?Sized> Sync for Ptr<T>
[src]

impl<T: ?Sized> Copy for Ptr<T>
[src]

impl<T: ?Sized> Clone for Ptr<T>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<T: ?Sized> Default for Ptr<T>
[src]

Returns the "default value" for a type. Read more

impl<T: ?Sized> Eq for Ptr<T>
[src]

impl<T: ?Sized> PartialEq for Ptr<T>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<T: ?Sized> PartialOrd for Ptr<T>
[src]

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<T: ?Sized> Ord for Ptr<T>
[src]

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl<T: ?Sized> From<Va> for Ptr<T>
[src]

Performs the conversion.

impl<T: ?Sized> From<Ptr<T>> for Va
[src]

Performs the conversion.

impl<T: ?Sized> AsRef<Va> for Ptr<T>
[src]

Performs the conversion.

impl<T: ?Sized> AsMut<Va> for Ptr<T>
[src]

Performs the conversion.

impl<T: Pod> Add<SignedVa> for Ptr<T>
[src]

The resulting type after applying the + operator.

Performs the + operation.

impl<T: Pod> Add<SignedVa> for Ptr<[T]>
[src]

The resulting type after applying the + operator.

Performs the + operation.

impl<T: Pod> Sub<SignedVa> for Ptr<T>
[src]

The resulting type after applying the - operator.

Performs the - operation.

impl<T: Pod> Sub<SignedVa> for Ptr<[T]>
[src]

The resulting type after applying the - operator.

Performs the - operation.

impl<T: ?Sized> Debug for Ptr<T>
[src]

Formats the value using the given formatter. Read more

impl<T: ?Sized> Display for Ptr<T>
[src]

Formats the value using the given formatter. Read more

impl<T: ?Sized> Serialize for Ptr<T>
[src]

Serialize this value into the given Serde serializer. Read more