pub struct Plugin<G: Html, D: Any + Send> {
    pub name: String,
    pub functional_actions_registrar: Box<dyn Fn(FunctionalPluginActions<G>) -> FunctionalPluginActions<G>>,
    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<G>) -> FunctionalPluginActions<G>>

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

Creates a new plugin with a name, functional actions, control actions, and whether or not the plugin is tinker-only.

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.