CommandPlugin

Struct CommandPlugin 

Source
pub struct CommandPlugin<I = (), O = ()> { /* private fields */ }
Expand description

A command plugin. This registers:

  • all commands registered to this plugin
  • events with the supplied markers, which are () by default
  • a dispatcher system to handle input events and dispatch commands.

Commands may be added with the CommandPlugin::register_command.
Argument types may be added with the CommandPlugin::register_argument.

Multiple instances of this plugin may be added to the same app, but the generic parameters I and O must differ from any other existing ones. The I parameter is used for the CommandInput event, and the O parameter is used for the CommandOutput event.

Other resources and registries used by this plugin are also parametrised with the I and O parameters.

Implementations§

Source§

impl<I, O> CommandPlugin<I, O>
where I: Send + Sync + 'static, O: Send + Sync + 'static,

Source

pub fn new() -> Self

Creates a new command plugin with no commands and no parsers.

To add the default help command, call CommandPlugin::with_default_commands.
To add the default arguments, call CommandPlugin::with_default_args.

Source

pub fn register_command(&self, command: CommandBuilder) -> &Self

Register a command. The command handler will run on the Update schedule, as the dispatcher is registered to the same schedule.

Source

pub fn register_argument<A: Argument>(&self) -> &Self

Register an argument.

Source

pub fn with_default_commands(&self) -> &Self

Register the “default” commands to this plugin.

The default commands are:

  • help: Provides a description and syntax for the command and its nodes
Source

pub fn with_default_args(&self) -> &Self

Register the “default” argument types to this plugin.

The default argument types are the ones in the builtins::args module.

Trait Implementations§

Source§

impl<I, O> Default for CommandPlugin<I, O>
where I: Send + Sync + 'static, O: Send + Sync + 'static,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<I, O> Plugin for CommandPlugin<I, O>
where I: Send + Sync + 'static, O: Send + Sync + 'static,

Source§

fn build(&self, app: &mut App)

Configures the App to which this plugin is added.
Source§

fn ready(&self, _app: &App) -> bool

Has the plugin finished its setup? This can be useful for plugins that need something asynchronous to happen before they can finish their setup, like the initialization of a renderer. Once the plugin is ready, finish should be called.
Source§

fn finish(&self, _app: &mut App)

Finish adding this plugin to the App, once all plugins registered are ready. This can be useful for plugins that depends on another plugin asynchronous setup, like the renderer.
Source§

fn cleanup(&self, _app: &mut App)

Runs after all plugins are built and finished, but before the app schedule is executed. This can be useful if you have some resource that other plugins need during their build step, but after build you want to remove it and send it to another thread.
Source§

fn name(&self) -> &str

Configures a name for the Plugin which is primarily used for checking plugin uniqueness and debugging.
Source§

fn is_unique(&self) -> bool

If the plugin can be meaningfully instantiated several times in an App, override this method to return false.

Auto Trait Implementations§

§

impl<I = (), O = ()> !Freeze for CommandPlugin<I, O>

§

impl<I, O> RefUnwindSafe for CommandPlugin<I, O>

§

impl<I, O> Send for CommandPlugin<I, O>
where I: Send, O: Send,

§

impl<I, O> Sync for CommandPlugin<I, O>
where I: Sync, O: Sync,

§

impl<I, O> Unpin for CommandPlugin<I, O>
where I: Unpin, O: Unpin,

§

impl<I, O> UnwindSafe for CommandPlugin<I, O>
where I: UnwindSafe, O: UnwindSafe,

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &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)

Converts &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> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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

Source§

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

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<Marker, T> Plugins<Marker> for T
where T: Plugins<Marker>,