use std::path::Path;
use lo_core::{FormulaDocument, Result};
use lo_math::to_mathml_string;
use crate::common::{content_root_attrs, package_document, MIME_ODF};
pub fn serialize_formula_document(document: &FormulaDocument) -> String {
let mut xml = lo_core::XmlBuilder::new();
xml.declaration();
xml.open("office:document-content", &content_root_attrs());
xml.empty("office:scripts", &[]);
xml.empty("office:automatic-styles", &[]);
xml.open("office:body", &[]);
xml.open("office:math", &[]);
xml.raw(&to_mathml_string(&document.root));
xml.close();
xml.close();
xml.close();
xml.finish()
}
pub fn save_formula_document(path: impl AsRef<Path>, document: &FormulaDocument) -> Result<()> {
let content = serialize_formula_document(document);
package_document(path, MIME_ODF, content, &document.meta, Vec::new())
}