1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
use crateGameTree;
/// Returns the serialized SGF text from a collection of [`GameTree`] objects.
///
/// For serializing a single node, check out the
/// [`SgfNode::serialize`](`crate::SgfNode::serialize`) method.
///
/// # Examples
/// ```
/// use sgf_parse::{serialize, SgfNode, SgfProp};
/// use sgf_parse::go::Prop;
///
/// let first_node: SgfNode::<Prop> = {
/// let children = vec![
/// SgfNode::new(
/// vec![Prop::new("B".to_string(),
/// vec!["dd".to_string()])], vec![],
/// false,
/// ),
/// ];
/// SgfNode::new(vec![Prop::SZ((19, 19))], children, true)
/// };
/// let second_node = SgfNode::<Prop>::new(vec![Prop::C("A comment".into())], vec![], true);
/// let gametrees = vec![first_node.into(), second_node.into()];
/// let serialized = serialize(&gametrees);
///
/// assert_eq!(serialized, "(;SZ[19:19];B[dd])(;C[A comment])");
/// ```