8 releases
0.0.8 | Jan 9, 2024 |
---|---|
0.0.7 | Nov 13, 2023 |
0.0.1 | Oct 9, 2023 |
#31 in #ok
14KB
235 lines
DEPRECATED
speare_macro
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)
}
}
Dependencies
~255–710KB
~17K SLoC