Merge branch 'djrodgerspryor-master'

This commit is contained in:
Marc-Antoine Arnaud 2021-02-08 11:43:43 +01:00
commit 083c9b9ac5

View File

@ -24,9 +24,9 @@ pub fn to_string_with_config<T: YaSerialize>(model: &T, config: &Config) -> Resu
pub fn serialize_with_writer<W: Write, T: YaSerialize>(
model: &T,
writer: W,
_config: &Config,
config: &Config,
) -> Result<W, String> {
let mut serializer = Serializer::new_from_writer(writer);
let mut serializer = Serializer::new_from_writer(writer, config);
match YaSerialize::serialize(model, &mut serializer) {
Ok(()) => Ok(serializer.into_inner()),
Err(msg) => Err(msg),
@ -67,10 +67,17 @@ impl<'de, W: Write> Serializer<W> {
}
}
pub fn new_from_writer(writer: W) -> Self {
let config = EmitterConfig::new().cdata_to_characters(true);
pub fn new_from_writer(writer: W, config: &Config) -> Self {
let mut emitter_config = EmitterConfig::new()
.cdata_to_characters(true)
.perform_indent(config.perform_indent)
.write_document_declaration(config.write_document_declaration);
Self::new(EventWriter::new_with_config(writer, config))
if let Some(indent_string_value) = &config.indent_string {
emitter_config = emitter_config.indent_string(indent_string_value.clone());
}
Self::new(EventWriter::new_with_config(writer, emitter_config))
}
pub fn new_for_inner(writer: W) -> Self {