pub struct ModuleCache { /* private fields */ }Expand description
Load-bearing invariant this cache does not check: every compile
call through one ModuleCache must pass the same wasmtime::Engine
every time. A Module is only valid for the Engine that compiled it —
mixing engines through one cache would silently return a Module
compiled for the wrong Engine. This codebase constructs exactly one
Engine per process (cuttlefishd’s and cuttlefish build’s main),
so a ModuleCache constructed once alongside it, and never shared
across processes, upholds this automatically. A test that constructs
its own throwaway Engine should also construct its own throwaway
ModuleCache — never reuse one across two different Engines.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ModuleCache
impl RefUnwindSafe for ModuleCache
impl Send for ModuleCache
impl Sync for ModuleCache
impl Unpin for ModuleCache
impl UnsafeUnpin for ModuleCache
impl UnwindSafe for ModuleCache
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more