Updated Crystal API (markdown)
+12
-13
@@ -1,23 +1,22 @@
|
|||||||
|
trait for declaring an application, pretty much just create a struct and implement the trait, the main function should be async as
|
||||||
|
in the trait.
|
||||||
|
|
||||||
|
- you will also need to import Box and async_trait for any struct implementing async trait to work otherwise you'll get a compile error
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
use async_trait::async_trait;
|
|
||||||
use alloc::{string::String, vec::Vec, boxed::Box};
|
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
pub trait Application {
|
pub trait Application {
|
||||||
fn new() -> Self;
|
fn new() -> Self;
|
||||||
|
async fn run(&mut self, _: Vec<String>) -> Result<(), Error> {
|
||||||
async fn run(&mut self, _: Vec<String>) -> Result<(), Error> {
|
Ok(())
|
||||||
Ok(())
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
UnknownCommand(String),
|
UnknownCommand(String),
|
||||||
CommandFailed(String),
|
CommandFailed(String),
|
||||||
ApplicationError(String),
|
ApplicationError(String),
|
||||||
EmptyCommand,
|
EmptyCommand,
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
Reference in New Issue
Block a user