Lock

Struct Lock 

Source
pub struct Lock<'a> { /* private fields */ }
Available on crate feature module only.
Expand description

A structure that represents a lock to the application’s ModuleLoader.

Implementations§

Source§

impl<'a> Lock<'a>

Source

pub unsafe fn load_builtin( &mut self, name: &str, ) -> Result<impl ModuleHandle + '_>

Attempts to load the given builtin module from its name.

§Arguments
  • name: the name of the builtin module to load.

returns: Result<&Module, Error>

§Safety

This function assumes the module to be loaded, if it exists has the correct format otherwise this function is UB.

Source

pub unsafe fn load_self(&mut self, name: &str) -> Result<impl ModuleHandle + '_>

Attempts to load a module from the specified name which is dynamically linked in the current running software.

§Arguments
  • name: the name of the module to be loaded.

returns: Result<&Module, Error>

§Safety

This function assumes the module to be loaded, if it exists has the correct format otherwise this function is UB.

Source

pub unsafe fn load(&mut self, name: &str) -> Result<impl ModuleHandle + '_>

Attempts to load a module from the specified name.

This function already does check for the version of rustc and dependencies for Rust based modules to ensure maximum ABI compatibility.

This function assumes the code to be loaded is trusted and delegates this operation to the underlying OS.

§Arguments
  • name: the name of the module to be loaded.

returns: ()

§Safety

It is assumed that the module is intended to be used with this instance of ModuleLoader; if not, this function is UB. Additionally, if some dependency used in public facing APIs for the module are not added with add_public_dependency, this is also UB.

Source

pub fn unload(&mut self, name: &str) -> Result<()>

Attempts to unload the given module.

§Arguments
  • name: the name of the module to unload.

returns: ()

Source

pub fn add_search_path(&mut self, path: impl AsRef<Path>)

Adds the given path to the path search list.

§Arguments
  • path: the path to include.

returns: ()

Source

pub fn remove_search_path(&mut self, path: impl AsRef<Path>)

Removes the given path to the path search list.

§Arguments
  • path: the path to remove.

returns: ()

Source

pub fn add_public_dependency<'b>( &mut self, name: &str, version: &str, features: impl IntoIterator<Item = &'b str>, )

Adds a public facing API dependency to the list of dependency for version checks.

This is used to check if there are any ABI incompatibilities between dependency versions when loading a Rust based module.

§Arguments
  • name: the name of the dependency.
  • version: the version of the dependency.

returns: ()

Source

pub fn get_builtin(&self, name: &str) -> Option<impl ModuleHandle + '_>

Returns the builtin module identified by the name name, returns None if the module is not loaded.

Source

pub fn get_module(&self, name: &str) -> Option<impl ModuleHandle + '_>

Returns the module identified by the name name, returns None if the module is not loaded.

Auto Trait Implementations§

§

impl<'a> Freeze for Lock<'a>

§

impl<'a> RefUnwindSafe for Lock<'a>

§

impl<'a> !Send for Lock<'a>

§

impl<'a> !Sync for Lock<'a>

§

impl<'a> Unpin for Lock<'a>

§

impl<'a> UnwindSafe for Lock<'a>

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