#[non_exhaustive]
pub enum InstantiationStrategy {
PoolingCopyOnWrite,
RecreateInstanceCopyOnWrite,
Pooling,
RecreateInstance,
LegacyInstanceReuse,
}
Expand description
The instantiation strategy to use for the WASM executor.
All of the CoW strategies (with CopyOnWrite
suffix) are only supported when either:
a) we’re running on Linux,
b) we’re running on an Unix-like system and we’re precompiling
our module beforehand.
If the CoW variant of a strategy is unsupported the executor will fall back to the non-CoW equivalent.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
PoolingCopyOnWrite
Pool the instances to avoid initializing everything from scratch on each instantiation. Use copy-on-write memory when possible.
This is the fastest instantiation strategy.
RecreateInstanceCopyOnWrite
Recreate the instance from scratch on every instantiation. Use copy-on-write memory when possible.
Pooling
Pool the instances to avoid initializing everything from scratch on each instantiation.
RecreateInstance
Recreate the instance from scratch on every instantiation. Very slow.
LegacyInstanceReuse
Legacy instance reuse mechanism. DEPRECATED. Will be removed. Do not use.
Trait Implementations§
source§impl Clone for InstantiationStrategy
impl Clone for InstantiationStrategy
source§fn clone(&self) -> InstantiationStrategy
fn clone(&self) -> InstantiationStrategy
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for InstantiationStrategy
impl Debug for InstantiationStrategy
source§impl Hash for InstantiationStrategy
impl Hash for InstantiationStrategy
source§impl PartialEq<InstantiationStrategy> for InstantiationStrategy
impl PartialEq<InstantiationStrategy> for InstantiationStrategy
source§fn eq(&self, other: &InstantiationStrategy) -> bool
fn eq(&self, other: &InstantiationStrategy) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for InstantiationStrategy
impl Eq for InstantiationStrategy
impl StructuralEq for InstantiationStrategy
impl StructuralPartialEq for InstantiationStrategy
Auto Trait Implementations§
impl RefUnwindSafe for InstantiationStrategy
impl Send for InstantiationStrategy
impl Sync for InstantiationStrategy
impl Unpin for InstantiationStrategy
impl UnwindSafe for InstantiationStrategy
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.