Struct veloren_common_dynlib::LoadedLib

source ·
pub struct LoadedLib {
    pub lib: Library,
    pub(crate) lib_path: PathBuf,
    pub(crate) reload_count: u64,
}
Expand description

LoadedLib holds a loaded dynamic library and the location of library file with the appropriate OS specific name and extension i.e. libvoxygen_anim_dyn_active.dylib, voxygen_anim_dyn_active.dll.

§NOTE

DOES NOT WORK ON MACOS, due to some limitations with hot-reloading the .dylib.

Fields§

§lib: Library

Loaded library.

§lib_path: PathBuf

Path to the library.

§reload_count: u64

Reload count, used for naming new library (loader will reuse old library if it has the same name).

Implementations§

source§

impl LoadedLib

source

pub(crate) fn compile_load(dyn_package: &str) -> Self

Compile and load the dynamic library

This is necessary because the very first time you use hot reloading you wont have the library, so you can’t load it until you have compiled it!

source

pub(crate) fn load(dyn_package: &str, reload_count: u64) -> Self

Load a library from disk.

Currently this is pretty fragile, it gets the path of where it thinks the dynamic library should be and tries to load it. It will panic if it is missing.

source

pub(crate) fn determine_path(dyn_package: &str, reload_count: u64) -> PathBuf

Determine the path to the dynamic library based on the path of the current executable.

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.

§

impl<T> Instrument for T

§

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

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

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

§

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

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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