pub struct Module(/* private fields */);
Expand description
A compiled PolkaVM program module.
Implementations§
source§impl Module
impl Module
sourcepub fn new(
engine: &Engine,
config: &ModuleConfig,
bytes: impl AsRef<[u8]>,
) -> Result<Self, Error>
pub fn new( engine: &Engine, config: &ModuleConfig, bytes: impl AsRef<[u8]>, ) -> Result<Self, Error>
Creates a new module by deserializing the program from the given bytes
.
sourcepub fn from_blob(
engine: &Engine,
config: &ModuleConfig,
blob: &ProgramBlob<'_>,
) -> Result<Self, Error>
pub fn from_blob( engine: &Engine, config: &ModuleConfig, blob: &ProgramBlob<'_>, ) -> Result<Self, Error>
Creates a new module from a deserialized program blob
.
sourcepub fn memory_map(&self) -> &MemoryMap
pub fn memory_map(&self) -> &MemoryMap
The program’s memory map.
sourcepub fn lookup_export(&self, symbol: impl AsRef<[u8]>) -> Option<ExportIndex>
pub fn lookup_export(&self, symbol: impl AsRef<[u8]>) -> Option<ExportIndex>
Searches for a given symbol exported by the module.
sourcepub fn machine_code(&self) -> Option<Cow<'_, [u8]>>
pub fn machine_code(&self) -> Option<Cow<'_, [u8]>>
The raw machine code of the compiled module.
Will return None
when running under an interpreter.
Mostly only useful for debugging.
sourcepub fn machine_code_origin(&self) -> Option<u64>
pub fn machine_code_origin(&self) -> Option<u64>
The address at which the raw machine code will be loaded.
Will return None
unless compiled for the Linux sandbox.
Mostly only useful for debugging.
sourcepub fn nth_instruction_to_code_offset_map(&self) -> Option<&[u32]>
pub fn nth_instruction_to_code_offset_map(&self) -> Option<&[u32]>
A map which makes it possible to map a position within the guest program into the exact range of native machine code instructions.
The returned slice has as many elements as there were instructions in the original guest program, plus one extra to make it possible to figure out the length of the machine code corresponding to the very last instruction.
This slice is guaranteed to be sorted, so you can binary search through it.
Will return None
when running under an interpreter.
Mostly only useful for debugging.
sourcepub fn nth_basic_block_to_gas_cost_map(&self) -> Option<&[u32]>
pub fn nth_basic_block_to_gas_cost_map(&self) -> Option<&[u32]>
A map with gas costs for each basic block of the program.
Will return None
when not running under an interpreter or if the gas metering was not enabled.
Mostly only useful for debugging.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Module
impl RefUnwindSafe for Module
impl Send for Module
impl Sync for Module
impl Unpin for Module
impl UnwindSafe for Module
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)