pub struct SharedLib { /* private fields */ }
Expand description
Structure representing a shared library.
Implementations§
Sourcepub unsafe fn new(lib_path: LibPath) -> Result<SharedLib, SharedLibError>
pub unsafe fn new(lib_path: LibPath) -> Result<SharedLib, SharedLibError>
Create a new shared library from the given path.
§Safety
This function is unsafe because it loads a shared library, which is generally unsafe as it is a foregin code.
Sourcepub unsafe fn get_fn<T>(
&self,
fn_name: &str,
) -> Result<SharedLibFn<'_, T>, SharedLibError>
pub unsafe fn get_fn<T>( &self, fn_name: &str, ) -> Result<SharedLibFn<'_, T>, SharedLibError>
Get a function by name from the shared library.
§Safety
This function is unsafe because it loads a function from the shared library, which is generally unsafe as it is a foregin code.
§Example
use std::path::PathBuf;
use shared_lib::*;
unsafe {
let lib_path = LibPath::new(PathBuf::from("path/to/shared/library"), "shared_library".into());
let lib = SharedLib::new(lib_path).expect("Failed to load shared library");
let add_fn = lib.get_fn::<fn(usize, usize) -> usize>("add").expect("Failed to get 'add' function from shared library");
let result = add_fn.run(1, 2);
}
Auto Trait Implementations§
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