use crate::writer::{Result, XmlWriter};
use std::io::Write;
use xlsbye_core::rels::{Relationship, TargetMode};
use xlsbye_core::xml_names::PACKAGE_RELS_NS;
pub fn write_relationships(writer: impl Write, rels: &[Relationship]) -> Result<()> {
let mut writer = XmlWriter::new(writer);
writer.write_xml_declaration()?;
writer.write_start_element_with_ns(
"Relationships",
[("", PACKAGE_RELS_NS)],
std::iter::empty::<(&str, &str)>(),
)?;
for rel in rels {
let mut attrs = vec![
("Id".to_string(), rel.id.clone()),
("Type".to_string(), rel.rel_type.clone()),
("Target".to_string(), rel.target.clone()),
];
if rel.target_mode == TargetMode::External {
attrs.push(("TargetMode".to_string(), "External".to_string()));
}
writer.write_empty_element("Relationship", attrs)?;
}
writer.write_end_element("Relationships")?;
Ok(())
}