| Crates.io | speare_macro |
| lib.rs | speare_macro |
| version | 0.0.8 |
| created_at | 2023-10-09 22:25:27.194523+00 |
| updated_at | 2024-01-09 08:55:21.23402+00 |
| description | macro to make speare crate easier to use |
| homepage | https://github.com/vmenge/speare |
| repository | https://github.com/vmenge/speare |
| max_upload_size | |
| id | 998562 |
| size | 13,256 |
This crate's sole purpose is to reduce the amount of boilerplate needed when working with the speare crate.
With it, we can write
pub struct Foo;
#[process]
impl Foo {
#[handler]
async fn bar(&mut self, msg: u64, ctx: &Ctx<Self>) -> Result<String, ()> {
Ok(format!("{msg}"))
}
#[handler]
async fn baz(&mut self, msg: String, ctx: &Ctx<Self>) -> Result<String, ()> {
Ok(msg)
}
}
instead of
pub struct Foo;
impl Process for Foo {
type Error = ();
}
#[async_trait]
impl Handler<u64> for Foo {
type Ok = String;
type Err = ();
async fn handle(&mut self, msg: u64, ctx: &Ctx<Self>) -> Result<String, ()> {
Ok(format!("{msg}"))
}
}
#[async_trait]
impl Handler<String> for Foo {
type Ok = String;
type Err = ();
async fn handle(&mut self, msg: u64, ctx: &Ctx<Self>) -> Result<String, ()> {
Ok(msg)
}
}