优化代码

This commit is contained in:
李运家 2024-11-06 10:39:37 +08:00
parent 56c5728a74
commit 1c9db648de
8 changed files with 26 additions and 29 deletions

View File

@ -12,7 +12,7 @@ pub struct Context {
impl Context {
pub fn get_account(&self) -> Option<Arc<Account>> {
if let Some(account) = &self.account {
return Some(account.clone());
Some(account.clone())
} else {
None
}
@ -20,7 +20,7 @@ impl Context {
pub fn get_token(&self) -> Option<Arc<String>> {
if let Some(token) = &self.token {
return Some(token.clone());
Some(token.clone())
} else {
None
}

View File

@ -80,6 +80,6 @@ where
return Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)));
}
return Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)));
Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)))
}
}

View File

@ -110,7 +110,7 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response {
tracing::error!("无效的 token, 解析失败");
// 解析语言
let language = request_util::get_lang_tag(req.headers());
return ResErr::auth(message!(&language, MessageId::BadRequest)).into_response();
ResErr::auth(message!(&language, MessageId::BadRequest)).into_response()
}
}
}

View File

@ -56,10 +56,7 @@ fn header_to_string(h: &HeaderMap) -> String {
map.insert(k.to_string(), vals);
}
match serde_json::to_string(&map) {
Ok(v) => v,
Err(_) => String::from("<none>"),
}
serde_json::to_string(&map).unwrap_or_else(|_| String::from("<none>"))
}
async fn drain_body(request: Request, next: Next) -> Result<(Response, Option<String>), ResErr> {
@ -86,7 +83,7 @@ async fn drain_body(request: Request, next: Next) -> Result<(Response, Option<St
let (parts, body) = request.into_parts();
// this wont work if the body is an long running stream
// this won't work if the body is a long-running stream
let bytes = match body.collect().await {
Ok(v) => v.to_bytes(),
Err(err) => {

View File

@ -282,4 +282,4 @@ impl ResErr {
}
}
pub type ResResult<T> = std::result::Result<T, ResErr>;
pub type ResResult<T> = Result<T, ResErr>;

View File

@ -47,13 +47,13 @@ pub struct WeChatBaseResult {
/// 微信登录登录
///
/// 登录成功
/// ```
/// ```json
/// {
/// "openid": "odbV75XGs-Lwj0CmOxwIXjdDfVEY",
/// "session_key": "iM6cs8nhw0VtAty16RjswQ==",
/// "unionid": null,
/// "errcode": null,
/// "errmsg": null
/// "openid": "odbV75XGs-Lwj0CmOxwIXjdDfVEY",
/// "session_key": "iM6cs8nhw0VtAty16RjswQ==",
/// "unionid": null,
/// "errcode": null,
/// "errmsg": null
/// }
/// ```
#[derive(Deserialize, Serialize, Debug, Clone, Responsable)]

View File

@ -21,7 +21,7 @@ struct RouteArgs {
// 实现 Parse trait 以支持解析参数
impl Parse for RouteArgs {
fn parse(input: ParseStream) -> syn::parse::Result<Self> {
fn parse(input: ParseStream) -> Result<Self> {
// 使用Meta解析 begin
// let args = Punctuated::<syn::Meta, syn::Token![,]>::parse_terminated(input)?;
// let mut path = None;
@ -46,7 +46,7 @@ impl Parse for RouteArgs {
// let path = path.expect("Expected a path argument");
// 使用Meta解析 end
let args = Punctuated::<syn::Expr, syn::Token![,]>::parse_terminated(input)?;
let args = Punctuated::<Expr, Token![,]>::parse_terminated(input)?;
let mut path = None;
let mut methods = Vec::new();
@ -87,12 +87,12 @@ impl Parse for RouteArgs {
}
struct Args {
vars: Vec<syn::Expr>,
vars: Vec<Expr>,
}
impl Parse for Args {
fn parse(input: ParseStream) -> syn::parse::Result<Self> {
let vars = Punctuated::<syn::Expr, syn::Token![,]>::parse_terminated(input)?;
fn parse(input: ParseStream) -> Result<Self> {
let vars = Punctuated::<Expr, Token![,]>::parse_terminated(input)?;
Ok(Args {
vars: vars.into_iter().collect(),
@ -101,18 +101,18 @@ impl Parse for Args {
}
impl Args {
pub fn get_arg(&self, index: usize) -> syn::Result<Option<syn::Expr>> {
pub fn get_arg(&self, index: usize) -> Result<Option<Expr>> {
match self.vars.get(index) {
Some(var) => Ok(Some(var.to_owned())),
None => {
// 第一个参数使路由url必须存在其他的参数根据实际需求进一步解析
if index != 0 {
return Ok(None);
Ok(None)
} else {
return Err(syn::Error::new(
Err(Error::new(
Span::call_site().into(),
"route must have one argument",
));
))
}
}
}
@ -130,13 +130,13 @@ pub fn gen_route(attr: TokenStream, item: TokenStream, method: &str) -> TokenStr
let mut method_routers = Vec::new();
if methods.is_empty() {
let method_name = syn::Ident::new(&method.to_lowercase(), method.span());
let method_name = Ident::new(&method.to_lowercase(), method.span());
method_routers.push(quote! {
(#path, axum::routing::#method_name(#ident::#ident))
});
} else {
for method in methods {
let method_name = syn::Ident::new(&method.to_lowercase(), method.span());
let method_name = Ident::new(&method.to_lowercase(), method.span());
method_routers.push(quote! {
(#path, axum::routing::#method_name(#ident::#ident))
});

View File

@ -23,7 +23,7 @@ struct TaskArgs {
// 实现 Parse trait 以支持解析参数
impl Parse for TaskArgs {
fn parse(input: ParseStream) -> Result<Self> {
let args = Punctuated::<syn::Meta, syn::Token![,]>::parse_terminated(input)?;
let args = Punctuated::<Meta, Token![,]>::parse_terminated(input)?;
let mut task_args = TaskArgs {
cron: String::from(""),
@ -61,7 +61,7 @@ impl Parse for TaskArgs {
}
if task_args.cron.is_empty() && task_args.interval <= 0 {
return Err(syn::Error::new(
return Err(Error::new(
Span::call_site().into(),
"必须设置有效的cron表达式或者interval参数",
));