修改路由错误信息
This commit is contained in:
parent
8a28c0e577
commit
2c48ee6537
@ -18,7 +18,7 @@ struct Args {
|
|||||||
impl Parse for Args {
|
impl Parse for Args {
|
||||||
fn parse(input: ParseStream) -> syn::parse::Result<Self> {
|
fn parse(input: ParseStream) -> syn::parse::Result<Self> {
|
||||||
let vars = Punctuated::<syn::Expr, syn::Token![,]>::parse_terminated(input)?;
|
let vars = Punctuated::<syn::Expr, syn::Token![,]>::parse_terminated(input)?;
|
||||||
|
|
||||||
Ok(Args {
|
Ok(Args {
|
||||||
vars: vars.into_iter().collect(),
|
vars: vars.into_iter().collect(),
|
||||||
})
|
})
|
||||||
@ -31,7 +31,7 @@ impl Args {
|
|||||||
Some(var) => Ok(var.clone()),
|
Some(var) => Ok(var.clone()),
|
||||||
None => return Err(syn::Error::new(
|
None => return Err(syn::Error::new(
|
||||||
Span::call_site().into(),
|
Span::call_site().into(),
|
||||||
"No Route was provided"
|
"route must have one argument"
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -41,26 +41,26 @@ impl Args {
|
|||||||
pub fn gen_route(attr: TokenStream, item: TokenStream) -> TokenStream {
|
pub fn gen_route(attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||||
let args = parse_macro_input!(attr as Args);
|
let args = parse_macro_input!(attr as Args);
|
||||||
let func = parse_macro_input!(item as ItemFn);
|
let func = parse_macro_input!(item as ItemFn);
|
||||||
|
|
||||||
let vis = func.vis.clone();
|
let vis = func.vis.clone();
|
||||||
let ident = func.sig.ident.clone();
|
let ident = func.sig.ident.clone();
|
||||||
|
|
||||||
let method = args.get_arg(0).unwrap();
|
let method = args.get_arg(0).unwrap();
|
||||||
let route = args.get_arg(1).unwrap();
|
let route = args.get_arg(1).unwrap();
|
||||||
|
|
||||||
let expanded = quote! {
|
let expanded = quote! {
|
||||||
#[allow(non_camel_case_types)]
|
#[allow(non_camel_case_types)]
|
||||||
#vis struct #ident;
|
#vis struct #ident;
|
||||||
|
|
||||||
impl #ident {
|
impl #ident {
|
||||||
#vis fn route() -> axum::Router {
|
#vis fn route() -> axum::Router {
|
||||||
#func
|
#func
|
||||||
|
|
||||||
axum::Router::new().route(#route, #method (#ident))
|
axum::Router::new().route(#route, #method (#ident))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
expanded.into()
|
expanded.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user