pub fn serialize<'a>(
root_node: &'a Node,
style: &'a mut dyn SerializeStyle<'a>
) -> String
Expand description
Serializes root_node
, returning the result.
Panics
Panics if there are invalid atoms (i.e. they fail check_atom
).
Example
extern crate sise;
use sise::sise_expr;
let tree = sise_expr!(["example", ["1", "2", "3"], ["a", "b", "c"]]);
// Compact
let compact = sise::serialize(&tree, &mut sise::CompactSerializeStyle::new());
assert_eq!(compact, "(example (1 2 3) (a b c))");
// Spaced
let spacing_config = sise::SerializeSpacingConfig {
line_ending: sise::SerializeLineEnding::Lf,
indent_len: 4,
indent_char: sise::SerializeIndentChar::Space,
};
let keep_same_line = std::collections::HashSet::new();
let spaced = sise::serialize(&tree, &mut sise::SpacedSerializeStyle::new(spacing_config, keep_same_line));
assert_eq!(spaced, "(example\n (1\n 2\n 3\n )\n (a\n b\n c\n )\n)\n");