use crate::writer::{Result, XmlWriter};
use std::io::Write;
use xlsbye_core::xml_names::CONTENT_TYPES_NS;
pub fn write_content_types(
writer: impl Write,
defaults: &[(String, String)],
overrides: &[(String, String)],
) -> Result<()> {
let mut writer = XmlWriter::new(writer);
writer.write_xml_declaration()?;
writer.write_start_element_with_ns(
"Types",
[("", CONTENT_TYPES_NS)],
std::iter::empty::<(&str, &str)>(),
)?;
for (extension, content_type) in defaults {
writer.write_empty_element(
"Default",
[
("Extension".to_string(), extension.clone()),
("ContentType".to_string(), content_type.clone()),
],
)?;
}
for (part_name, content_type) in overrides {
writer.write_empty_element(
"Override",
[
("PartName".to_string(), part_name.clone()),
("ContentType".to_string(), content_type.clone()),
],
)?;
}
writer.write_end_element("Types")?;
Ok(())
}