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
|
||||
use async_trait::async_trait;
|
||||
use alloc::{string::String, vec::Vec, boxed::Box};
|
||||
|
||||
#[async_trait]
|
||||
pub trait Application {
|
||||
fn new() -> Self;
|
||||
|
||||
async fn run(&mut self, _: Vec<String>) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
fn new() -> Self;
|
||||
async fn run(&mut self, _: Vec<String>) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Error {
|
||||
UnknownCommand(String),
|
||||
CommandFailed(String),
|
||||
ApplicationError(String),
|
||||
EmptyCommand,
|
||||
UnknownCommand(String),
|
||||
CommandFailed(String),
|
||||
ApplicationError(String),
|
||||
EmptyCommand,
|
||||
}
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user