Skip to main content

FatPointer

Struct FatPointer 

Source
#[repr(transparent)]
pub struct FatPointer(pub u64);
Expand description

Struct that represents a fat pointer where the upper 32 bits are the offset and the lower 32 bits are the size of the data.

Primarily used for passing data to and from the host environment. It is not reccomended to construct this directly, instead use leak_to_shared_memory

The maximum offset and size representable is 4GB each

Tuple Fields§

§0: u64

Implementations§

Source§

impl FatPointer

Source

pub fn offset(&self) -> u32

Location in memory where the data is stored

Source

pub fn size(&self) -> u32

Size of the data in bytes

Source

pub unsafe fn copy_data(&self) -> Box<[u8]>

Copies the data from the fat pointer into a newly allocated Box<[u8]>.

This is unsafe because it assumes that the data at the offset is valid. It is the caller’s responsibility to ensure that this is the case.

Trait Implementations§

Source§

impl Debug for FatPointer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for FatPointer

Source§

impl PartialEq for FatPointer

Source§

fn eq(&self, other: &FatPointer) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for FatPointer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.