pub struct Plugin<D: Any + Send + Sync> {
pub name: String,
pub functional_actions_registrar: Box<dyn Fn(FunctionalPluginActions) -> FunctionalPluginActions>,
pub control_actions_registrar: Box<dyn Fn(ControlPluginActions) -> ControlPluginActions>,
pub env: PluginEnv,
/* private fields */
}
Expand description
A Perseus plugin. This must be exported by all plugin crates so the user can register the plugin easily.
Fields§
§name: String
The machine name of the plugin, which will be used as a key in a HashMap with many other plugins. This should be the public crate name in all cases.
functional_actions_registrar: Box<dyn Fn(FunctionalPluginActions) -> FunctionalPluginActions>
A function that will be provided functional actions. It should then register runners from the plugin for every action that it takes.
control_actions_registrar: Box<dyn Fn(ControlPluginActions) -> ControlPluginActions>
A function that will be provided control actions. It should then register runners from the plugin for every action that it takes.
env: PluginEnv
The environment that the plugin should run in.
Implementations§
source§impl<D: Any + Send + Sync> Plugin<D>
impl<D: Any + Send + Sync> Plugin<D>
sourcepub fn new(
name: &str,
functional_actions_registrar: impl Fn(FunctionalPluginActions) -> FunctionalPluginActions + 'static,
control_actions_registrar: impl Fn(ControlPluginActions) -> ControlPluginActions + 'static,
env: PluginEnv
) -> Self
pub fn new( name: &str, functional_actions_registrar: impl Fn(FunctionalPluginActions) -> FunctionalPluginActions + 'static, control_actions_registrar: impl Fn(ControlPluginActions) -> ControlPluginActions + 'static, env: PluginEnv ) -> Self
Creates a new plugin with a name, functional actions, control actions, and whether or not the plugin is tinker-only.
Trait Implementations§
Auto Trait Implementations§
impl<D> !RefUnwindSafe for Plugin<D>
impl<D> !Send for Plugin<D>
impl<D> !Sync for Plugin<D>
impl<D> Unpin for Plugin<D>where D: Unpin,
impl<D> !UnwindSafe for Plugin<D>
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