1
0
Fork 0

fix errors/warnings in generated code

remove import of `Write`
remove now unused output string in display impls
access query fields by reference
remove `r#` in vars accessed in format strings
replace char literals in write macros with strings
This commit is contained in:
Cyborus 2024-01-24 16:31:34 -05:00
parent bcfe3e1e6c
commit 48eee70c88
No known key found for this signature in database

View file

@ -22,7 +22,6 @@ fn main() -> eyre::Result<()> {
s.push_str("use structs::*;\n"); s.push_str("use structs::*;\n");
s.push_str("pub mod structs {\n"); s.push_str("pub mod structs {\n");
s.push_str("use std::fmt::Write;\n");
if let Some(definitions) = &spec.definitions { if let Some(definitions) = &spec.definitions {
for (name, schema) in definitions { for (name, schema) in definitions {
let strukt = create_struct_for_definition(&spec, name, schema)?; let strukt = create_struct_for_definition(&spec, name, schema)?;
@ -900,7 +899,6 @@ fn create_query_struct(spec: &OpenApiV2, path: &str, op: &Operation) -> eyre::Re
let mut fields = String::new(); let mut fields = String::new();
let mut imp = String::new(); let mut imp = String::new();
imp.push_str("let mut s = String::new();\n");
for param in params { for param in params {
let param = match &param { let param = match &param {
MaybeRef::Value { value } => value, MaybeRef::Value { value } => value,
@ -928,11 +926,11 @@ fn create_query_struct(spec: &OpenApiV2, path: &str, op: &Operation) -> eyre::Re
.as_ref() .as_ref()
.ok_or_else(|| eyre::eyre!("no type provided for query field"))?; .ok_or_else(|| eyre::eyre!("no type provided for query field"))?;
if required { if required {
writeln!(&mut handler, "let {field_name} = self.{field_name};")?; writeln!(&mut handler, "let {field_name} = &self.{field_name};")?;
} else { } else {
writeln!( writeln!(
&mut handler, &mut handler,
"if let Some({field_name}) = self.{field_name} {{" "if let Some({field_name}) = &self.{field_name} {{"
)?; )?;
} }
match ty { match ty {
@ -947,15 +945,16 @@ fn create_query_struct(spec: &OpenApiV2, path: &str, op: &Operation) -> eyre::Re
writeln!( writeln!(
&mut handler, &mut handler,
"write!(f, \"{}={{{}}}&\")?;", "write!(f, \"{}={{{}}}&\")?;",
param.name, field_name param.name, field_name.strip_prefix("r#").unwrap_or(&field_name)
)?; )?;
} }
}, },
ParameterType::Number | ParameterType::Integer | ParameterType::Boolean => { ParameterType::Number | ParameterType::Integer | ParameterType::Boolean => {
writeln!( writeln!(
&mut handler, &mut handler,
"write!(f, \"{}={{{field_name}}}&\")?;", "write!(f, \"{}={{{}}}&\")?;",
param.name param.name,
field_name.strip_prefix("r#").unwrap_or(&field_name)
)?; )?;
} }
ParameterType::Array => { ParameterType::Array => {
@ -1025,7 +1024,7 @@ fn create_query_struct(spec: &OpenApiV2, path: &str, op: &Operation) -> eyre::Re
writeln!(&mut handler, "write!(f, \"{}=\")?;", param.name)?; writeln!(&mut handler, "write!(f, \"{}=\")?;", param.name)?;
handler.push_str(item_pusher); handler.push_str(item_pusher);
handler.push('\n'); handler.push('\n');
writeln!(&mut handler, "write!(f, '&')?;")?; writeln!(&mut handler, "write!(f, \"&\")?;")?;
writeln!(&mut handler, "}}")?; writeln!(&mut handler, "}}")?;
writeln!(&mut handler, "}}")?; writeln!(&mut handler, "}}")?;
} }
@ -1083,10 +1082,10 @@ if !{name}.is_empty() {{
for (item, i) in {name}.iter().enumerate() {{ for (item, i) in {name}.iter().enumerate() {{
{item_pusher} {item_pusher}
if i < {name}.len() - 1 {{ if i < {name}.len() - 1 {{
write!(f, '{sep}')?; write!(f, \"{sep}\")?;
}} }}
}} }}
write!(f, '&')?; write!(f, \"&\")?;
}}", }}",
param.name param.name
)?; )?;