ecitygml-io 0.0.2-alpha.5

IO operations for processing CityGML data.
Documentation
use crate::Error;
use crate::gml::codec::core::serialize_city_model;
use ecitygml_core::model::core::CityModel;
use egml::io::util::Formatting;
use quick_xml::events::{BytesDecl, Event};
use std::io::Write;

pub fn serialize<W: Write>(
    writer: &mut W,
    city_model: CityModel,
    formatting: Formatting,
) -> Result<(), Error> {
    let mut xml_writer = quick_xml::Writer::new(writer);

    xml_writer.write_event(Event::Decl(BytesDecl::new(
        "1.0",
        Some("UTF-8"),
        Some("yes"),
    )))?;
    if formatting != Formatting::Compact {
        xml_writer.get_mut().write_all(b"\n")?;
    }

    serialize_city_model(&mut xml_writer, city_model, formatting)?;

    Ok(())
}