移除冗余代码

This commit is contained in:
李运家 2024-10-03 09:20:30 +08:00
parent f8a25bae5e
commit e9fd606dbd
3 changed files with 16 additions and 20 deletions

View File

@ -21,6 +21,11 @@ pub fn responsable(input: TokenStream) -> TokenStream {
responsable::gen_responsable(input)
}
#[proc_macro_attribute]
pub fn route(attr: TokenStream, item: TokenStream) -> TokenStream {
route::gen_route(attr, item)
}
#[proc_macro_attribute]
pub fn get(attr: TokenStream, item: TokenStream) -> TokenStream {
route::gen_get_route(attr, item)

View File

@ -25,18 +25,8 @@ impl Parse for Args {
}
impl Args {
pub fn get_method(&self) -> syn::Result<syn::Expr> {
match self.vars.get(0) {
Some(var) => Ok(var.clone()),
None => return Err(syn::Error::new(
Span::call_site().into(),
"No Method was provided"
))
}
}
pub fn get_route(&self) -> syn::Result<syn::Expr> {
match self.vars.get(0) {
pub fn get_arg(&self, index: usize) -> syn::Result<syn::Expr> {
match self.vars.get(index) {
Some(var) => Ok(var.clone()),
None => return Err(syn::Error::new(
Span::call_site().into(),
@ -54,8 +44,8 @@ pub fn gen_route(attr: TokenStream, item: TokenStream) -> TokenStream {
let vis = func.vis.clone();
let ident = func.sig.ident.clone();
let method = args.get_method().unwrap();
let route = args.get_route().unwrap();
let method = args.get_arg(0).unwrap();
let route = args.get_arg(1).unwrap();
let expanded = quote! {
#[allow(non_camel_case_types)]
@ -80,7 +70,7 @@ pub fn gen_get_route(attr: TokenStream, item: TokenStream) -> TokenStream {
let vis = func.vis.clone();
let ident = func.sig.ident.clone();
let route = args.get_route().unwrap();
let route = args.get_arg(0).unwrap();
let expanded = quote! {
#vis fn #ident () -> (&'static str, axum::routing::method_routing::MethodRouter) {
@ -99,7 +89,7 @@ pub fn gen_post_route(attr: TokenStream, item: TokenStream) -> TokenStream {
let vis = func.vis.clone();
let ident = func.sig.ident.clone();
let route = args.get_route().unwrap();
let route = args.get_arg(0).unwrap();
let expanded = quote! {
#vis fn #ident () -> (&'static str, axum::routing::method_routing::MethodRouter) {
@ -118,7 +108,7 @@ pub fn gen_delete_route(attr: TokenStream, item: TokenStream) -> TokenStream {
let vis = func.vis.clone();
let ident = func.sig.ident.clone();
let route = args.get_route().unwrap();
let route = args.get_arg(0).unwrap();
let expanded = quote! {
#vis fn #ident () -> (&'static str, axum::routing::method_routing::MethodRouter) {
@ -137,7 +127,7 @@ pub fn gen_put_route(attr: TokenStream, item: TokenStream) -> TokenStream {
let vis = func.vis.clone();
let ident = func.sig.ident.clone();
let route = args.get_route().unwrap();
let route = args.get_arg(0).unwrap();
let expanded = quote! {
#vis fn #ident () -> (&'static str, axum::routing::method_routing::MethodRouter) {
@ -156,7 +146,7 @@ pub fn gen_option_route(attr: TokenStream, item: TokenStream) -> TokenStream {
let vis = func.vis.clone();
let ident = func.sig.ident.clone();
let route = args.get_route().unwrap();
let route = args.get_arg(0).unwrap();
let expanded = quote! {
#vis fn #ident () -> (&'static str, axum::routing::method_routing::MethodRouter) {

View File

@ -6,11 +6,12 @@ pub mod feedback_controller;
pub fn init() -> Router {
Router::new()
// 用户登录、用户管理相关路由
.typed_route(account_controller::authenticate_google)
.typed_route(account_controller::authenticate_with_password)
.typed_route(account_controller::refresh_token)
// 反馈相关路由
.typed_route(feedback_controller::add_feedback)
.typed_route(feedback_controller::get_feedback_list_by_page)
.typed_route(feedback_controller::get_feedback_list)
}