Skip to content

Commit 0ececcd

Browse files
committed
Fix lint
1 parent 4e00a2e commit 0ececcd

2 files changed

Lines changed: 22 additions & 14 deletions

File tree

crates/vespera_macro/src/parser/schema.rs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -713,11 +713,10 @@ fn substitute_type(ty: &Type, generic_params: &[String], concrete_types: &[&Type
713713

714714
if let syn::PathArguments::None = &segment.arguments {
715715
// Direct generic parameter substitution
716-
if let Some(index) = generic_params.iter().position(|p| p == &ident_str) {
717-
if let Some(concrete_ty) = concrete_types.get(index) {
716+
if let Some(index) = generic_params.iter().position(|p| p == &ident_str)
717+
&& let Some(concrete_ty) = concrete_types.get(index) {
718718
return (*concrete_ty).clone();
719719
}
720-
}
721720
}
722721
}
723722

@@ -730,13 +729,9 @@ fn substitute_type(ty: &Type, generic_params: &[String], concrete_types: &[&Type
730729
let mut new_args = syn::punctuated::Punctuated::new();
731730
for arg in &args.args {
732731
let new_arg = match arg {
733-
syn::GenericArgument::Type(inner_ty) => {
734-
syn::GenericArgument::Type(substitute_type(
735-
inner_ty,
736-
generic_params,
737-
concrete_types,
738-
))
739-
}
732+
syn::GenericArgument::Type(inner_ty) => syn::GenericArgument::Type(
733+
substitute_type(inner_ty, generic_params, concrete_types),
734+
),
740735
other => other.clone(),
741736
};
742737
new_args.push(new_arg);
@@ -771,21 +766,33 @@ fn substitute_type(ty: &Type, generic_params: &[String], concrete_types: &[&Type
771766
and_token: type_ref.and_token,
772767
lifetime: type_ref.lifetime.clone(),
773768
mutability: type_ref.mutability,
774-
elem: Box::new(substitute_type(&type_ref.elem, generic_params, concrete_types)),
769+
elem: Box::new(substitute_type(
770+
&type_ref.elem,
771+
generic_params,
772+
concrete_types,
773+
)),
775774
})
776775
}
777776
Type::Slice(type_slice) => {
778777
// Handle [T]
779778
Type::Slice(syn::TypeSlice {
780779
bracket_token: type_slice.bracket_token,
781-
elem: Box::new(substitute_type(&type_slice.elem, generic_params, concrete_types)),
780+
elem: Box::new(substitute_type(
781+
&type_slice.elem,
782+
generic_params,
783+
concrete_types,
784+
)),
782785
})
783786
}
784787
Type::Array(type_array) => {
785788
// Handle [T; N]
786789
Type::Array(syn::TypeArray {
787790
bracket_token: type_array.bracket_token,
788-
elem: Box::new(substitute_type(&type_array.elem, generic_params, concrete_types)),
791+
elem: Box::new(substitute_type(
792+
&type_array.elem,
793+
generic_params,
794+
concrete_types,
795+
)),
789796
semi_token: type_array.semi_token,
790797
len: type_array.len.clone(),
791798
})

examples/axum-example/src/routes/generic.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ pub struct PaginatedResponse<T: Serialize> {
7979
pub total_page: i32,
8080
}
8181
#[vespera::route(get, path = "/generic5")]
82-
pub async fn generic_endpoint5() -> Result<Json<PaginatedResponse<ContactResponse>>, (vespera::axum::http::StatusCode, String)> {
82+
pub async fn generic_endpoint5()
83+
-> Result<Json<PaginatedResponse<ContactResponse>>, (vespera::axum::http::StatusCode, String)> {
8384
Ok(Json(PaginatedResponse {
8485
items: vec![ContactResponse {
8586
id: 1,

0 commit comments

Comments
 (0)