pub struct Command<T> {
pub command: CommandType<T>,
pub help: String,
}
Fields§
§command: CommandType<T>
The function pointer which this links to.
help: String
A help string, should be less than 80 characters. For example, if it
was an echo
command:
prints the arguments to the output.
Implementations§
source§impl<T> Command<T>
impl<T> Command<T>
sourcepub fn new(help: String, command: CommandFn<T>) -> Self
pub fn new(help: String, command: CommandFn<T>) -> Self
Creates a new Command
.
Example
use shellfish::*;
use std::error::Error;
fn greet(_state: &mut (), args: Vec<String>) -> Result<(), Box<dyn Error>> {
//--snip--
}
fn main() {
// Creates a shell
let mut shell = Shell::new((), "[Shell]-$");
// Creates a command
shell.commands.insert(
"greet",
Command::new("greets_you".to_string(), greet),
);
}
sourcepub fn new_async(help: String, command: AsyncCommandFn<T>) -> Self
pub fn new_async(help: String, command: AsyncCommandFn<T>) -> Self
Creates a new asynchronous Command
.
It is important to note that you have to call
async_fn!
to prepare a function for it.
Example
use shellfish::*;
use std::error::Error;
async fn greet(_state: &mut (), args: Vec<String>) -> Result<(), Box<dyn Error>> {
//--snip--
}
async fn async_main() {
// Creates a shell
let mut shell = Shell::new((), "[Shell]-$");
// Creates a command
shell.commands.insert(
"greet",
Command::new_async("greets_you".to_string(), async_fn!((), greet)),
);
}
Trait Implementations§
Auto Trait Implementations§
impl<T> RefUnwindSafe for Command<T>
impl<T> Send for Command<T>
impl<T> Sync for Command<T>
impl<T> Unpin for Command<T>
impl<T> UnwindSafe for Command<T>
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