Struct extism::PluginMemory
source · [−]pub struct PluginMemory {
pub store: Store<Internal>,
pub memory: Memory,
pub live_blocks: BTreeMap<usize, usize>,
pub free: Vec<MemoryBlock>,
pub position: usize,
}Expand description
Handles memory for plugins
Fields
store: Store<Internal>memory: Memorylive_blocks: BTreeMap<usize, usize>free: Vec<MemoryBlock>position: usizeImplementations
sourceimpl PluginMemory
impl PluginMemory
pub fn new(store: Store<Internal>, memory: Memory) -> Self
sourcepub fn write(
&mut self,
pos: impl Into<MemoryBlock>,
data: impl AsRef<[u8]>
) -> Result<(), MemoryAccessError>
pub fn write(
&mut self,
pos: impl Into<MemoryBlock>,
data: impl AsRef<[u8]>
) -> Result<(), MemoryAccessError>
Write to memory
sourcepub fn read(
&self,
pos: impl Into<MemoryBlock>,
data: impl AsMut<[u8]>
) -> Result<(), MemoryAccessError>
pub fn read(
&self,
pos: impl Into<MemoryBlock>,
data: impl AsMut<[u8]>
) -> Result<(), MemoryAccessError>
Read from memory
sourcepub fn alloc_bytes(
&mut self,
data: impl AsRef<[u8]>
) -> Result<MemoryBlock, Error>
pub fn alloc_bytes(
&mut self,
data: impl AsRef<[u8]>
) -> Result<MemoryBlock, Error>
Allocate and copy data into the wasm memory
sourcepub fn data(&self) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
pub fn data(&self) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
Get memory as a slice of bytes
sourcepub fn data_mut(&mut self) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
pub fn data_mut(&mut self) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
Get memory as a mutable slice of bytes
sourcepub fn get(&self, handle: impl Into<MemoryBlock>) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
pub fn get(&self, handle: impl Into<MemoryBlock>) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
Get bytes occupied by the provided memory handle
sourcepub fn get_mut(&mut self, handle: impl Into<MemoryBlock>) -> &mut [u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
pub fn get_mut(&mut self, handle: impl Into<MemoryBlock>) -> &mut [u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
Get mutable bytes occupied by the provided memory handle
sourcepub fn block_length(&self, offs: usize) -> Option<usize>
pub fn block_length(&self, offs: usize) -> Option<usize>
Get the length of the block starting at offs
Auto Trait Implementations
impl !RefUnwindSafe for PluginMemory
impl !Send for PluginMemory
impl !Sync for PluginMemory
impl Unpin for PluginMemory
impl !UnwindSafe for PluginMemory
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
fn get_fd_flags(&self) -> Result<FdFlags, Error> where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error> where
T: AsFilelike,
Query the “status” flags for the self file descriptor.
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error> where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error> where
T: AsFilelike,
Create a new SetFdFlags value for use with set_fd_flags. Read more
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error> where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error> where
T: AsFilelike,
Set the “status” flags for the self file descriptor. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more