You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let files = collect_files(folder_path).map_err(|e| {
19
-
err_call_site(format!(
20
-
"vespera! macro: failed to scan route folder '{}': {}. Verify the folder exists and is readable.",
21
-
folder_path.display(),
22
-
e
23
-
))
24
-
})?;
18
+
let files = collect_files(folder_path).map_err(|e| err_call_site(format!("vespera! macro: failed to scan route folder '{}': {}. Verify the folder exists and is readable.", folder_path.display(), e)))?;
25
19
26
20
for file in files {
27
21
if !file.extension().map(|e| e == "rs").unwrap_or(false){
let file_ast = syn::parse_file(&content).map_err(|e| {
40
-
err_call_site(format!(
41
-
"vespera! macro: syntax error in '{}': {}. Fix the Rust syntax errors in this file.",
42
-
file.display(),
43
-
e
44
-
))
45
-
})?;
33
+
let file_ast = syn::parse_file(&content).map_err(|e| err_call_site(format!("vespera! macro: syntax error in '{}': {}. Fix the Rust syntax errors in this file.", file.display(), e)))?;
let item_fn: syn::ItemFn = syn::parse2(item.clone()).map_err(|e| {
61
-
syn::Error::new(e.span(),"#[route] attribute: can only be applied to functions, not other items. Move or remove the attribute.")
62
-
})?;
60
+
let item_fn: syn::ItemFn = syn::parse2(item.clone()).map_err(|e| syn::Error::new(e.span(),"#[route] attribute: can only be applied to functions, not other items. Move or remove the attribute."))?;
// Get the last segment (handles paths like crate::User)
15
-
let segment = type_path.path.segments.last().ok_or_else(|| {
16
-
syn::Error::new_spanned(
17
-
ty,
18
-
"extract_type_name: type path has no segments. Provide a valid type like `User` or `crate::models::User`.",
19
-
)
20
-
})?;
15
+
let segment = type_path.path.segments.last().ok_or_else(|| syn::Error::new_spanned(ty,"extract_type_name: type path has no segments. Provide a valid type like `User` or `crate::models::User`."))?;
let json_str = serde_json::to_string_pretty(&openapi_doc)
86
-
.map_err(|e| err_call_site(format!("OpenAPI generation: failed to serialize document to JSON. Error: {}. Check that all schema types are serializable.", e)))?;
85
+
let json_str = serde_json::to_string_pretty(&openapi_doc).map_err(|e| err_call_site(format!("OpenAPI generation: failed to serialize document to JSON. Error: {}. Check that all schema types are serializable.", e)))?;
87
86
88
87
for openapi_file_name in&input.openapi_file_names{
89
88
let file_path = Path::new(openapi_file_name);
90
89
ifletSome(parent) = file_path.parent(){
91
-
std::fs::create_dir_all(parent)
92
-
.map_err(|e| err_call_site(format!("OpenAPI output: failed to create directory '{}'. Error: {}. Ensure the path is valid and writable.", parent.display(), e)))?;
90
+
std::fs::create_dir_all(parent).map_err(|e| err_call_site(format!("OpenAPI output: failed to create directory '{}'. Error: {}. Ensure the path is valid and writable.", parent.display(), e)))?;
93
91
}
94
-
std::fs::write(file_path,&json_str).map_err(|e| {
95
-
err_call_site(format!(
96
-
"OpenAPI output: failed to write file '{}'. Error: {}. Ensure the file path is writable.",
97
-
openapi_file_name, e
98
-
))
99
-
})?;
92
+
std::fs::write(file_path,&json_str).map_err(|e| err_call_site(format!("OpenAPI output: failed to write file '{}'. Error: {}. Ensure the file path is writable.", openapi_file_name, e)))?;
let openapi_doc = generate_openapi_doc_with_metadata(None,None,None,&metadata);
219
-
let spec_json = serde_json::to_string(&openapi_doc).map_err(|e| {
220
-
syn::Error::new(
221
-
Span::call_site(),
222
-
format!("export_app! macro: failed to serialize OpenAPI spec to JSON. Error: {}. Check that all schema types are serializable.", e),
223
-
)
224
-
})?;
202
+
let spec_json = serde_json::to_string(&openapi_doc).map_err(|e| syn::Error::new(Span::call_site(),format!("export_app! macro: failed to serialize OpenAPI spec to JSON. Error: {}. Check that all schema types are serializable.", e)))?;
225
203
226
204
// Write spec to temp file for compile-time merging by parent apps
0 commit comments