pub type WasmPtr64<T> = WasmPtr<T, Memory64>;
Expand description
Alias for `WasmPtr<T, Memory64>.
Aliased Type§
struct WasmPtr64<T> {
offset: u64,
_phantom: PhantomData<T>,
}
Fields§
§offset: u64
§_phantom: PhantomData<T>
Implementations§
source§impl<T, M: MemorySize> WasmPtr<T, M>
impl<T, M: MemorySize> WasmPtr<T, M>
sourcepub fn add_offset(self, offset: M::Offset) -> Result<Self, MemoryAccessError>
pub fn add_offset(self, offset: M::Offset) -> Result<Self, MemoryAccessError>
Calculates an offset from the current pointer address. The argument is
in units of T
.
This method returns an error if an address overflow occurs.
sourcepub fn sub_offset(self, offset: M::Offset) -> Result<Self, MemoryAccessError>
pub fn sub_offset(self, offset: M::Offset) -> Result<Self, MemoryAccessError>
Calculates an offset from the current pointer address. The argument is
in units of T
.
This method returns an error if an address underflow occurs.
source§impl<T: ValueType, M: MemorySize> WasmPtr<T, M>
impl<T: ValueType, M: MemorySize> WasmPtr<T, M>
sourcepub fn deref<'a>(&self, view: &'a MemoryView<'_>) -> WasmRef<'a, T>
pub fn deref<'a>(&self, view: &'a MemoryView<'_>) -> WasmRef<'a, T>
Creates a WasmRef
from this WasmPtr
which allows reading and
mutating of the value being pointed to.
sourcepub fn read(&self, view: &MemoryView<'_>) -> Result<T, MemoryAccessError>
pub fn read(&self, view: &MemoryView<'_>) -> Result<T, MemoryAccessError>
Reads the address pointed to by this WasmPtr
in a memory.
sourcepub fn write(
&self,
view: &MemoryView<'_>,
val: T
) -> Result<(), MemoryAccessError>
pub fn write( &self, view: &MemoryView<'_>, val: T ) -> Result<(), MemoryAccessError>
Writes to the address pointed to by this WasmPtr
in a memory.
sourcepub fn slice<'a>(
&self,
view: &'a MemoryView<'_>,
len: M::Offset
) -> Result<WasmSlice<'a, T>, MemoryAccessError>
pub fn slice<'a>( &self, view: &'a MemoryView<'_>, len: M::Offset ) -> Result<WasmSlice<'a, T>, MemoryAccessError>
Creates a WasmSlice
starting at this WasmPtr
which allows reading
and mutating of an array of value being pointed to.
Returns a MemoryAccessError
if the slice length overflows a 64-bit
address.
sourcepub fn read_until(
&self,
view: &MemoryView<'_>,
end: impl FnMut(&T) -> bool
) -> Result<Vec<T>, MemoryAccessError>
pub fn read_until( &self, view: &MemoryView<'_>, end: impl FnMut(&T) -> bool ) -> Result<Vec<T>, MemoryAccessError>
Reads a sequence of values from this WasmPtr
until a value that
matches the given condition is found.
This last value is not included in the returned vector.
sourcepub fn access<'a>(
&self,
view: &'a MemoryView<'_>
) -> Result<WasmRefAccess<'a, T>, MemoryAccessError>
pub fn access<'a>( &self, view: &'a MemoryView<'_> ) -> Result<WasmRefAccess<'a, T>, MemoryAccessError>
Creates a WasmAccess
source§impl<M: MemorySize> WasmPtr<u8, M>
impl<M: MemorySize> WasmPtr<u8, M>
sourcepub fn read_utf8_string(
&self,
view: &MemoryView<'_>,
len: M::Offset
) -> Result<String, MemoryAccessError>
pub fn read_utf8_string( &self, view: &MemoryView<'_>, len: M::Offset ) -> Result<String, MemoryAccessError>
Reads a UTF-8 string from the WasmPtr
with the given length.
This method is safe to call even if the memory is being concurrently modified.
sourcepub fn read_utf8_string_with_nul(
&self,
view: &MemoryView<'_>
) -> Result<String, MemoryAccessError>
pub fn read_utf8_string_with_nul( &self, view: &MemoryView<'_> ) -> Result<String, MemoryAccessError>
Reads a null-terminated UTF-8 string from the WasmPtr
.
This method is safe to call even if the memory is being concurrently modified.
Trait Implementations§
source§impl<T: ValueType, M: MemorySize> FromToNativeWasmType for WasmPtr<T, M>where
<M as MemorySize>::Native: NativeWasmTypeInto,
impl<T: ValueType, M: MemorySize> FromToNativeWasmType for WasmPtr<T, M>where <M as MemorySize>::Native: NativeWasmTypeInto,
§type Native = <M as MemorySize>::Native
type Native = <M as MemorySize>::Native
source§fn from_native(n: Self::Native) -> Self
fn from_native(n: Self::Native) -> Self
source§fn is_from_store(&self, _store: &impl AsStoreRef) -> bool
fn is_from_store(&self, _store: &impl AsStoreRef) -> bool
source§impl<T: ValueType, M: MemorySize> PartialEq<WasmPtr<T, M>> for WasmPtr<T, M>
impl<T: ValueType, M: MemorySize> PartialEq<WasmPtr<T, M>> for WasmPtr<T, M>
source§impl<T: ValueType, M: MemorySize> ValueType for WasmPtr<T, M>
impl<T: ValueType, M: MemorySize> ValueType for WasmPtr<T, M>
source§fn zero_padding_bytes(&self, _bytes: &mut [MaybeUninit<u8>])
fn zero_padding_bytes(&self, _bytes: &mut [MaybeUninit<u8>])
self
. It must zero out any bytes which are
uninitialized (e.g. padding bytes).