1pub trait TomlWrite: core::fmt::Write {
2    fn open_table_header(&mut self) -> core::fmt::Result {
3        write!(self, "[")
4    }
5    fn close_table_header(&mut self) -> core::fmt::Result {
6        write!(self, "]")
7    }
8
9    fn open_array_of_tables_header(&mut self) -> core::fmt::Result {
10        write!(self, "[[")
11    }
12    fn close_array_of_tables_header(&mut self) -> core::fmt::Result {
13        write!(self, "]]")
14    }
15
16    fn open_inline_table(&mut self) -> core::fmt::Result {
17        write!(self, "{{")
18    }
19    fn close_inline_table(&mut self) -> core::fmt::Result {
20        write!(self, "}}")
21    }
22
23    fn open_array(&mut self) -> core::fmt::Result {
24        write!(self, "[")
25    }
26    fn close_array(&mut self) -> core::fmt::Result {
27        write!(self, "]")
28    }
29
30    fn key_sep(&mut self) -> core::fmt::Result {
31        write!(self, ".")
32    }
33
34    fn keyval_sep(&mut self) -> core::fmt::Result {
35        write!(self, "=")
36    }
37
38    fn key(&mut self, value: impl crate::WriteTomlKey) -> core::fmt::Result {
39        value.write_toml_key(self)
40    }
41
42    fn value(&mut self, value: impl crate::WriteTomlValue) -> core::fmt::Result {
59        value.write_toml_value(self)
60    }
61
62    fn val_sep(&mut self) -> core::fmt::Result {
63        write!(self, ",")
64    }
65
66    fn space(&mut self) -> core::fmt::Result {
67        write!(self, " ")
68    }
69
70    fn open_comment(&mut self) -> core::fmt::Result {
71        write!(self, "#")
72    }
73
74    fn newline(&mut self) -> core::fmt::Result {
75        writeln!(self)
76    }
77}
78
79impl<W> TomlWrite for W where W: core::fmt::Write {}