DynamicMessageLibraryCache

Struct DynamicMessageLibraryCache 

Source
pub struct DynamicMessageLibraryCache(/* private fields */);
Expand description

A struct to cache loaded shared libraries for dynamic messages, indexing them by name.

Implementations§

Source§

impl DynamicMessageLibraryCache

Source

pub fn get_or_load( &mut self, package_name: &str, ) -> Result<Arc<Library>, DynamicMessageError>

Get a reference to the library for the specific package_name. Attempt to load and store it in the cache if it is not currently loaded.

Source

pub fn unload(&mut self, package_name: &str) -> bool

Remove a package_name from the cache. Return true if it was removed, false otherwise

This function can be used to reduce memory footprint if the message library is not used anymore. Note that since shared libraries are wrapped by an Arc this does not unload the library until all other structures that reference it (DynamicMessage or DynamicMessageMetadata) are also dropped.

Trait Implementations§

Source§

impl Default for DynamicMessageLibraryCache

Source§

fn default() -> DynamicMessageLibraryCache

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

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> 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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.