pub struct DeserializedModuleCache { /* private fields */ }
Expand description

Caches deserialized wasm modules. Deserialization of cached modules from the cache to create callable instances is slow. Therefore modules are cached in memory after deserialization.

Trait Implementations§

source§

impl Debug for DeserializedModuleCache

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for DeserializedModuleCache

source§

fn default() -> DeserializedModuleCache

Returns the “default value” for a type. Read more
source§

impl PlruCache for DeserializedModuleCache

§

type Item = Module

The type of items in the cache.
source§

fn plru_mut(&mut self) -> &mut MicroCache

Accessor for mutable reference to internal plru cache.
source§

fn key_map_mut(&mut self) -> &mut PlruKeyMap

Mutable accessor to mapping between plru cache bits and cache keys.
source§

fn key_map(&self) -> &PlruKeyMap

Accessor to mapping between plru cache bits and cache keys.
source§

fn cache(&self) -> &BTreeMap<CacheKey, Arc<Self::Item>>

Accessor to the cache key addressable cache of items.
source§

fn cache_mut(&mut self) -> &mut BTreeMap<CacheKey, Arc<Self::Item>>

Mutable accessor to the cache key addressable cache of items.
source§

fn put_item(&mut self, key: CacheKey, item: Arc<Self::Item>) -> Arc<Self::Item>

Put an item in both the plru cache and the item cache by its cache key. If the cache is full, the roughly most stale plru will be evicted from the item cache and reassigned to the new item.
source§

fn plru_key(&self, key: &CacheKey) -> usize

Get the plru key for a given cache key. Will panic if the mapping does not exist so the caller MUST NOT request the plru on a cache miss AND that the cache is never set such as to cause a hit without also setting the plru.
source§

fn touch(&mut self, key: &CacheKey)

Touches the plru such that the given CacheKey becomes the most recently used item.
source§

fn trash(&mut self, key: &CacheKey)

Delete the plru for a given cache key. Care must be taken to ensure this is not called before a subsequent call to plru_key or it will panic.
source§

fn remove_item(&mut self, key: &CacheKey) -> Option<Arc<Self::Item>>

Remove an item from the cache and the associated plru entry.
source§

fn get_item(&mut self, key: &CacheKey) -> Option<Arc<Self::Item>>

Attempt to retrieve an item from the cache by its cache key.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

source§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<T> LayoutRaw for T

source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Upcastable for T
where T: Any + Send + Sync + 'static,

source§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
source§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
source§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more