pub struct DyLibDynamicPlugin { /* private fields */ }
Expand description
Implementation of DynamicPluginTrait that (re)loads Rust code from Rust dylib .
Implementations§
Source§impl DyLibDynamicPlugin
impl DyLibDynamicPlugin
Sourcepub fn new<P>(
path: P,
reload_when_changed: bool,
use_relative_paths: bool,
) -> Result<Self, String>
pub fn new<P>( path: P, reload_when_changed: bool, use_relative_paths: bool, ) -> Result<Self, String>
Tries to create a new dynamic plugin. This method attempts to load a dynamic library by the
given path and searches for fyrox_plugin
function. This function is called to create a
plugin instance. This method will fail if there’s no dynamic library at the given path or
the fyrox_plugin
function is not found.
§Hot reloading
This method can enable hot reloading for the plugin, by setting reload_when_changed
parameter
to true
. When enabled, the engine will clone the library to implementation-defined path
and load it. It will setup file system watcher to receive changes from the OS and reload
the plugin.
Trait Implementations§
Source§impl DynamicPlugin for DyLibDynamicPlugin
impl DynamicPlugin for DyLibDynamicPlugin
Source§fn as_loaded_ref(&self) -> &dyn Plugin
fn as_loaded_ref(&self) -> &dyn Plugin
panics if not loaded
Source§fn as_loaded_mut(&mut self) -> &mut dyn Plugin
fn as_loaded_mut(&mut self) -> &mut dyn Plugin
panics if not loaded
Source§fn is_reload_needed_now(&self) -> bool
fn is_reload_needed_now(&self) -> bool
engine polls is time to time to determine if it’s time to reload plugin
Source§fn display_name(&self) -> String
fn display_name(&self) -> String
returns human-redable short description of the plugin
Source§fn is_loaded(&self) -> bool
fn is_loaded(&self) -> bool
returns false if something bad happends during
reload
.
has no much use except prevention of error spammingSource§fn reload(
&mut self,
fill_and_register: &mut dyn FnMut(&mut dyn Plugin) -> Result<(), String>,
) -> Result<(), String>
fn reload( &mut self, fill_and_register: &mut dyn FnMut(&mut dyn Plugin) -> Result<(), String>, ) -> Result<(), String>
called after plugin-related objects are detached
fill_and_register
callback exposes plugin instance to engine to register constructors and restore the state
callback approach allows plugins to do some necessary actions right after plugin is registedSource§fn prepare_to_reload(&mut self)
fn prepare_to_reload(&mut self)
called before saving state and detaching related objects
Auto Trait Implementations§
impl Freeze for DyLibDynamicPlugin
impl !RefUnwindSafe for DyLibDynamicPlugin
impl !Send for DyLibDynamicPlugin
impl !Sync for DyLibDynamicPlugin
impl Unpin for DyLibDynamicPlugin
impl !UnwindSafe for DyLibDynamicPlugin
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts self reference as a reference to
Any
. Could be used to downcast a trait object
to a particular type.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts self reference as a reference to
Any
. Could be used to downcast a trait object
to a particular type.fn into_any(self: Box<T>) -> Box<dyn Any>
Source§impl<T> FieldValue for Twhere
T: 'static,
impl<T> FieldValue for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.