use std::borrow::Cow;
use std::io::Write;
use crate::xml::writer::EventWriter;
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct EmitterConfig {
pub line_separator: Cow<'static, str>,
pub indent_string: Cow<'static, str>,
pub perform_indent: bool,
pub normalize_empty_elements: bool,
pub cdata_to_characters: bool,
pub autopad_comments: bool,
pub pad_self_closing: bool,
pub write_document_declaration: bool,
}
impl EmitterConfig {
#[inline]
pub fn new() -> EmitterConfig {
EmitterConfig {
line_separator: "\n".into(),
indent_string: " ".into(), perform_indent: false,
write_document_declaration: true,
normalize_empty_elements: true,
cdata_to_characters: false,
autopad_comments: true,
pad_self_closing: true,
}
}
#[inline]
pub fn create_writer<W: Write>(self, sink: W) -> EventWriter<W> {
EventWriter::new_with_config(sink, self)
}
}
impl Default for EmitterConfig {
#[inline]
fn default() -> EmitterConfig {
EmitterConfig::new()
}
}
gen_setters!(EmitterConfig,
line_separator: into Cow<'static, str>,
indent_string: into Cow<'static, str>,
perform_indent: val bool,
write_document_declaration: val bool,
normalize_empty_elements: val bool,
cdata_to_characters: val bool,
autopad_comments: val bool,
pad_self_closing: val bool
);