ecitygml-io 0.0.2-alpha.5

IO operations for processing CityGML data.
Documentation
use crate::Error;
use crate::gml::codec::core::{
    deserialize_abstract_occupied_space, serialize_abstract_occupied_space,
};
use crate::gml::util::CombinedCityGmlElement;
use ecitygml_core::model::construction::AbstractFillingElement;
use ecitygml_core::model::core::AsAbstractOccupiedSpace;
use egml::io::util::{Formatting, XmlElementSpans, XmlNodeParts};

pub fn deserialize_abstract_filling_element(
    xml_document: &[u8],
    spans: &XmlElementSpans<CombinedCityGmlElement>,
) -> Result<AbstractFillingElement, Error> {
    let abstract_occupied_space = deserialize_abstract_occupied_space(xml_document, spans)?;
    let window_surface =
        AbstractFillingElement::from_abstract_occupied_space(abstract_occupied_space);

    Ok(window_surface)
}

pub fn serialize_abstract_filling_element(
    abstract_filling_element: &AbstractFillingElement,
    formatting: Formatting,
) -> Result<XmlNodeParts, Error> {
    serialize_abstract_occupied_space(
        abstract_filling_element.abstract_occupied_space(),
        formatting,
    )
}