pub struct ModuleCache { /* private fields */ }
Expand description
A ModuleCache is a cache of a set of Wasm modules that have been parsed but not yet instantiated, along with a shared and reusable Engine storing their code. The cache must be populated eagerly with all the contracts in a single Host’s lifecycle (at least) added all at once, since each wasmi Engine is locked during execution and no new modules can be added to it.
Implementations§
Source§impl ModuleCache
impl ModuleCache
pub fn new(host: &Host) -> Result<Self, HostError>
pub fn add_stored_contracts(&mut self, host: &Host) -> Result<(), HostError>
pub fn parse_and_cache_module( &mut self, host: &Host, contract_id: &Hash, wasm: &[u8], cost_inputs: VersionedContractCodeCostInputs, ) -> Result<(), HostError>
pub fn with_import_symbols<T>( &self, host: &Host, callback: impl FnOnce(&BTreeSet<(&str, &str)>) -> Result<T, HostError>, ) -> Result<T, HostError>
pub fn make_linker(&self, host: &Host) -> Result<Linker<Host>, HostError>
pub fn get_module( &self, host: &Host, wasm_hash: &Hash, ) -> Result<Option<Rc<ParsedModule>>, HostError>
Trait Implementations§
Source§impl Clone for ModuleCache
impl Clone for ModuleCache
Source§fn clone(&self) -> ModuleCache
fn clone(&self) -> ModuleCache
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Default for ModuleCache
impl Default for ModuleCache
Source§fn default() -> ModuleCache
fn default() -> ModuleCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ModuleCache
impl !RefUnwindSafe for ModuleCache
impl !Send for ModuleCache
impl !Sync for ModuleCache
impl Unpin for ModuleCache
impl !UnwindSafe for ModuleCache
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W), b: &(T, U, V, W), ) -> Result<Ordering, <C as Compare<(T, U, V, W)>>::Error>
Source§impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W, X), b: &(T, U, V, W, X), ) -> Result<Ordering, <C as Compare<(T, U, V, W, X)>>::Error>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.