pub trait Command {
// Required methods
fn token(&self) -> Token;
fn autocomplete(
&self,
fuzzy_match: FuzzyMatch<'_>,
input: &str,
) -> Option<AutocompleteSuggestion>;
fn get_priority(
&self,
token_match: &TokenMatch<'_>,
) -> Option<CommandPriority>;
async fn run(
&self,
token_match: TokenMatch<'_>,
app_meta: &mut AppMeta,
) -> Result<String, String>;
fn get_canonical_form_of(
&self,
token_match: &TokenMatch<'_>,
) -> Option<String>;
// Provided method
fn parse_autocomplete<'a>(
&'a self,
input: &'a str,
app_meta: &'a AppMeta,
) -> Pin<Box<dyn Stream<Item = AutocompleteSuggestion> + 'a>> { ... }
}
Required Methods§
Sourcefn token(&self) -> Token
fn token(&self) -> Token
Return a single Token representing the command’s syntax. If multiple commands are possible, Token::Or can be used as a wrapper to cover the options.
Sourcefn autocomplete(
&self,
fuzzy_match: FuzzyMatch<'_>,
input: &str,
) -> Option<AutocompleteSuggestion>
fn autocomplete( &self, fuzzy_match: FuzzyMatch<'_>, input: &str, ) -> Option<AutocompleteSuggestion>
Convert a matched token into a suggestion to be displayed to the user. Note that this method is not async; any metadata that may be needed for the autocomplete should be fetched during the match_input step of the token and embedded in the match_meta property of the TokenMatch object.
Sourcefn get_priority(&self, token_match: &TokenMatch<'_>) -> Option<CommandPriority>
fn get_priority(&self, token_match: &TokenMatch<'_>) -> Option<CommandPriority>
Get the priority of the command with a given input. See CommandPriority for details.
Sourceasync fn run(
&self,
token_match: TokenMatch<'_>,
app_meta: &mut AppMeta,
) -> Result<String, String>
async fn run( &self, token_match: TokenMatch<'_>, app_meta: &mut AppMeta, ) -> Result<String, String>
Run the command represented by a matched token, returning the success or failure output to be displayed to the user.
Sourcefn get_canonical_form_of(&self, token_match: &TokenMatch<'_>) -> Option<String>
fn get_canonical_form_of(&self, token_match: &TokenMatch<'_>) -> Option<String>
Get the canonical form of the provided token match. Return None if the match is invalid.
Provided Methods§
Sourcefn parse_autocomplete<'a>(
&'a self,
input: &'a str,
app_meta: &'a AppMeta,
) -> Pin<Box<dyn Stream<Item = AutocompleteSuggestion> + 'a>>
fn parse_autocomplete<'a>( &'a self, input: &'a str, app_meta: &'a AppMeta, ) -> Pin<Box<dyn Stream<Item = AutocompleteSuggestion> + 'a>>
A helper function to roughly provide Command::autocomplete(Command::token().match_input()), except that that wouldn’t compile for all sorts of exciting reasons.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.