1pub trait JsonWrite: core::fmt::Write {
2 fn open_object(&mut self) -> core::fmt::Result {
3 write!(self, "{{")
4 }
5 fn close_object(&mut self) -> core::fmt::Result {
6 write!(self, "}}")
7 }
8
9 fn open_array(&mut self) -> core::fmt::Result {
10 write!(self, "[")
11 }
12 fn close_array(&mut self) -> core::fmt::Result {
13 write!(self, "]")
14 }
15
16 fn keyval_sep(&mut self) -> core::fmt::Result {
17 write!(self, ":")
18 }
19
20 fn key(&mut self, value: impl crate::WriteJsonKey) -> core::fmt::Result {
22 value.write_json_key(self)
23 }
24
25 fn value(&mut self, value: impl crate::WriteJsonValue) -> core::fmt::Result {
44 value.write_json_value(self)
45 }
46
47 fn val_sep(&mut self) -> core::fmt::Result {
48 write!(self, ",")
49 }
50
51 fn space(&mut self) -> core::fmt::Result {
52 write!(self, " ")
53 }
54
55 fn newline(&mut self) -> core::fmt::Result {
56 writeln!(self)
57 }
58}
59
60impl<W> JsonWrite for W where W: core::fmt::Write {}