From ad10b82c1e6785cbf88562117b1609905cfeb6dc Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 27 Apr 2026 21:06:38 +0800 Subject: Add `route!` macro for early error routing --- mingling_macros/src/lib.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'mingling_macros/src') 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 @@ -58,6 +58,18 @@ pub fn pack(input: TokenStream) -> TokenStream { pack::pack(input) } +#[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) -- cgit