Skip to content

Commit a97e58c

Browse files
committed
Fix lint
1 parent 6f2d6fb commit a97e58c

5 files changed

Lines changed: 45 additions & 27 deletions

File tree

crates/vespera_macro/src/parser/schema/struct_schema.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ use vespera_core::schema::{Schema, SchemaRef, SchemaType};
1111
use super::{
1212
serde_attrs::{
1313
extract_doc_comment, extract_field_rename, extract_flatten, extract_rename_all,
14-
extract_schema_ref_override,
15-
extract_transparent,
16-
extract_skip, rename_field, strip_raw_prefix_owned,
14+
extract_schema_ref_override, extract_skip, extract_transparent, rename_field,
15+
strip_raw_prefix_owned,
1716
},
1817
type_schema::parse_type_to_schema_ref,
1918
};
@@ -289,12 +288,12 @@ mod tests {
289288
#[test]
290289
fn test_parse_struct_to_schema_serde_transparent_named_wrapper_uses_inner_schema() {
291290
let struct_item: syn::ItemStruct = syn::parse_str(
292-
r#"
291+
r"
293292
#[serde(transparent)]
294293
struct Wrapper {
295294
value: Box<String>,
296295
}
297-
"#,
296+
",
298297
)
299298
.unwrap();
300299

@@ -316,7 +315,10 @@ mod tests {
316315
.unwrap();
317316

318317
let schema = parse_struct_to_schema(&struct_item, &HashSet::new(), &HashMap::new());
319-
assert_eq!(schema.ref_path.as_deref(), Some("#/components/schemas/UserSchema"));
318+
assert_eq!(
319+
schema.ref_path.as_deref(),
320+
Some("#/components/schemas/UserSchema")
321+
);
320322
assert_eq!(schema.nullable, Some(true));
321323
}
322324

crates/vespera_macro/src/schema_impl.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ pub fn process_derive_schema(
8181

8282
// Schema-derived types appear in OpenAPI spec (include_in_openapi: true)
8383
let mut metadata = StructMetadata::new(schema_name, quote::quote!(#input).to_string());
84-
if input.attrs.iter().any(|attr| attr.path().is_ident("schema")) {
84+
if input
85+
.attrs
86+
.iter()
87+
.any(|attr| attr.path().is_ident("schema"))
88+
{
8589
let mut has_ref_override = false;
8690
for attr in &input.attrs {
8791
if !attr.path().is_ident("schema") {

crates/vespera_macro/src/schema_macro/mod.rs

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ fn schema_component_name_from_path(schema_path: &TokenStream) -> String {
9393
if segments.last().is_some_and(|segment| segment == "Schema") && segments.len() > 1 {
9494
format!("{}Schema", capitalize_first(&segments[segments.len() - 2]))
9595
} else {
96-
segments.last().cloned().unwrap_or_else(|| "Schema".to_string())
96+
segments
97+
.last()
98+
.cloned()
99+
.unwrap_or_else(|| "Schema".to_string())
97100
}
98101
}
99102

@@ -116,7 +119,7 @@ fn has_derive(struct_item: &syn::ItemStruct, derive_name: &str) -> bool {
116119

117120
fn build_named_struct_field_assignments(
118121
struct_item: &syn::ItemStruct,
119-
source_expr: TokenStream,
122+
source_expr: &TokenStream,
120123
) -> syn::Result<Vec<TokenStream>> {
121124
let syn::Fields::Named(fields_named) = &struct_item.fields else {
122125
return Err(syn::Error::new_spanned(
@@ -179,7 +182,12 @@ fn build_proxy_to_dto_assignments(struct_item: &syn::ItemStruct) -> syn::Result<
179182
let assignments = fields_named
180183
.named
181184
.iter()
182-
.filter_map(|field| field.ident.as_ref().map(|ident| quote! { #ident: proxy.#ident }))
185+
.filter_map(|field| {
186+
field
187+
.ident
188+
.as_ref()
189+
.map(|ident| quote! { #ident: proxy.#ident })
190+
})
183191
.collect();
184192

185193
Ok(assignments)
@@ -222,11 +230,19 @@ fn maybe_generate_same_file_relation_override(
222230
.map_err(|e| syn::Error::new(proc_macro2::Span::call_site(), e.to_string()))?;
223231
let dto_ident = syn::Ident::new(&dto_name, proc_macro2::Span::call_site());
224232
let wrapper_ident = syn::Ident::new(
225-
&format!("__Vespera{}{}Relation", new_type_name, snake_to_pascal_case(field_name)),
233+
&format!(
234+
"__Vespera{}{}Relation",
235+
new_type_name,
236+
snake_to_pascal_case(field_name)
237+
),
226238
proc_macro2::Span::call_site(),
227239
);
228240
let proxy_ident = syn::Ident::new(
229-
&format!("__Vespera{}{}Proxy", new_type_name, snake_to_pascal_case(field_name)),
241+
&format!(
242+
"__Vespera{}{}Proxy",
243+
new_type_name,
244+
snake_to_pascal_case(field_name)
245+
),
230246
proc_macro2::Span::call_site(),
231247
);
232248
let schema_ref_name = schema_component_name_from_path(&rel_info.schema_path);
@@ -248,7 +264,8 @@ fn maybe_generate_same_file_relation_override(
248264
let Some(model_ty) = related_model_type_from_schema_path(&rel_info.schema_path) else {
249265
return Ok(None);
250266
};
251-
let from_model_assignments = build_named_struct_field_assignments(&dto_struct, quote! { source })?;
267+
let source_expr = quote! { source };
268+
let from_model_assignments = build_named_struct_field_assignments(&dto_struct, &source_expr)?;
252269

253270
let mut helper_tokens = Vec::new();
254271

@@ -286,7 +303,7 @@ fn maybe_generate_same_file_relation_override(
286303
});
287304
}
288305

289-
helper_tokens.push(quote! {
306+
helper_tokens.push(quote! {
290307
impl From<#model_ty> for #dto_ident {
291308
fn from(source: #model_ty) -> Self {
292309
Self {
@@ -308,7 +325,10 @@ fn maybe_generate_same_file_relation_override(
308325
}
309326
});
310327

311-
Ok(Some((quote! { #wrapper_ident }, quote! { #(#helper_tokens)* })))
328+
Ok(Some((
329+
quote! { #wrapper_ident },
330+
quote! { #(#helper_tokens)* },
331+
)))
312332
}
313333

314334
/// Generate schema code from a struct with optional field filtering
@@ -586,7 +606,7 @@ pub fn generate_schema_type_code(
586606
{
587607
relation_override_helpers.push(helper_tokens);
588608
(Box::new(override_field_ty), Some(rel_info))
589-
} else
609+
} else
590610
// Check for circular references and potentially use inline type
591611
if let Some(inline_type) = generate_inline_relation_type(
592612
new_type_name,

crates/vespera_macro/src/schema_macro/tests.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,6 @@ use serial_test::serial;
88

99
use super::*;
1010

11-
struct UserInArticle {
12-
id: i32,
13-
name: String,
14-
}
15-
16-
struct CategoryInArticle {
17-
id: i64,
18-
name: String,
19-
}
20-
2111
fn create_test_struct_metadata(name: &str, definition: &str) -> StructMetadata {
2212
StructMetadata::new(name.to_string(), definition.to_string())
2313
}

examples/axum-example/tests/integration_test.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,9 @@ async fn test_openapi_memo_detail_same_file_relation_adapter_schema() {
10271027
"#/components/schemas/MemoCommentInMemoDetail"
10281028
);
10291029
assert!(
1030-
schemas.get("__VesperaMemoDetailResponseUserRelation").is_none(),
1030+
schemas
1031+
.get("__VesperaMemoDetailResponseUserRelation")
1032+
.is_none(),
10311033
"Internal relation adapter should not appear in OpenAPI components"
10321034
);
10331035
}

0 commit comments

Comments
 (0)