aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-04-27 21:06:38 +0800
committer魏曹先生 <1992414357@qq.com>2026-04-27 21:06:38 +0800
commitad10b82c1e6785cbf88562117b1609905cfeb6dc (patch)
tree5f7de552a570a4e0e3346e255a78d6687dfb6300 /mingling_macros
parent3fd6a7a27d7002cdf3ab5123b75c889d830e7145 (diff)
Add `route!` macro for early error routing
Diffstat (limited to 'mingling_macros')
-rw-r--r--mingling_macros/src/lib.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/mingling_macros/src/lib.rs b/mingling_macros/src/lib.rs
index f9be1de..cce5eeb 100644
--- a/mingling_macros/src/lib.rs
+++ b/mingling_macros/src/lib.rs
@@ -59,6 +59,18 @@ pub fn pack(input: TokenStream) -> TokenStream {
}
#[proc_macro]
+pub fn route(input: TokenStream) -> TokenStream {
+ let expr = parse_macro_input!(input as syn::Expr);
+ let expanded = quote! {
+ match #expr {
+ Ok(r) => r,
+ Err(e) => return e,
+ }
+ };
+ TokenStream::from(expanded)
+}
+
+#[proc_macro]
pub fn dispatcher(input: TokenStream) -> TokenStream {
dispatcher::dispatcher(input)
}