Unverified Commit 6ff81b3b authored by Nugine's avatar Nugine
Browse files

codegen: xml: skip zero value

parent 2225bd82
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -156,7 +156,16 @@ fn codegen_xml_ser(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) {
                        g.ln(f!("s.content(\"{xml_name}\", val)?;"));
                        g.ln("}");
                    } else {
                        let default_is_zero = field.default_value.as_ref().and_then(|v| v.as_u64()) == Some(0);
                        let skip_zero = default_is_zero && ty.name == "DefaultRetention"; // ASK: the real condition?

                        if skip_zero {
                            g.ln(f!("if self.{} != 0 {{", field.name));
                            g.ln(f!("s.content(\"{}\", &self.{})?;", xml_name, field.name));
                            g.ln("}");
                        } else {
                            g.ln(f!("s.content(\"{}\", &self.{})?;", xml_name, field.name));
                        }
                    }
                }

+6 −2
Original line number Diff line number Diff line
@@ -280,11 +280,15 @@ impl SerializeContent for CreateMultipartUploadOutput {

impl SerializeContent for DefaultRetention {
    fn serialize_content<W: Write>(&self, s: &mut Serializer<W>) -> SerResult {
        if self.days != 0 {
            s.content("Days", &self.days)?;
        }
        if let Some(ref val) = self.mode {
            s.content("Mode", val)?;
        }
        if self.years != 0 {
            s.content("Years", &self.years)?;
        }
        Ok(())
    }
}