pub struct NativeModule<T: ?Sized> { /* private fields */ }Expand description
A loaded dynamic library plugin that exposes a trait object via the dyn-fat-pointer-bridge pattern.
Implementations§
Source§impl<T: ?Sized> NativeModule<T>
impl<T: ?Sized> NativeModule<T>
Sourcepub unsafe fn load(path: &Path, entry_symbol: &[u8]) -> Result<Self>
pub unsafe fn load(path: &Path, entry_symbol: &[u8]) -> Result<Self>
Load a plugin from a dynamic library file.
The library must export a function with the given symbol name
that returns an AbiStableDynRef created via SafeArcDyn::into_abi().
§Safety
- The target file must be a valid dynamic library for the current process.
- The entry point must return a valid
AbiStableDynReffor traitT.
Sourcepub unsafe fn from_lib(lib: DynLib, entry_symbol: &[u8]) -> Result<Self>
pub unsafe fn from_lib(lib: DynLib, entry_symbol: &[u8]) -> Result<Self>
Load from an already-loaded DynLib.
§Safety
The entry point must return a valid AbiStableDynRef for trait T.
Sourcepub fn clone_handle(&self) -> SafeArcDyn<T>
pub fn clone_handle(&self) -> SafeArcDyn<T>
Get a cloned SafeArcDyn (for sharing across threads).
Trait Implementations§
impl<T: ?Sized + Send> Send for NativeModule<T>
impl<T: ?Sized + Sync> Sync for NativeModule<T>
Auto Trait Implementations§
impl<T> Freeze for NativeModule<T>
impl<T> RefUnwindSafe for NativeModule<T>
impl<T> Unpin for NativeModule<T>
impl<T> UnsafeUnpin for NativeModule<T>
impl<T> UnwindSafe for NativeModule<T>
Blanket Implementations§
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