diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-04-27 21:06:38 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-04-27 21:06:38 +0800 |
| commit | ad10b82c1e6785cbf88562117b1609905cfeb6dc (patch) | |
| tree | 5f7de552a570a4e0e3346e255a78d6687dfb6300 /mingling_macros/src | |
| parent | 3fd6a7a27d7002cdf3ab5123b75c889d830e7145 (diff) | |
Add `route!` macro for early error routing
Diffstat (limited to 'mingling_macros/src')
| -rw-r--r-- | mingling_macros/src/lib.rs | 12 |
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) } |
