pub trait JsonWrite: core::fmt::Write {
fn open_object(&mut self) -> core::fmt::Result {
write!(self, "{{")
}
fn close_object(&mut self) -> core::fmt::Result {
write!(self, "}}")
}
fn open_array(&mut self) -> core::fmt::Result {
write!(self, "[")
}
fn close_array(&mut self) -> core::fmt::Result {
write!(self, "]")
}
fn keyval_sep(&mut self) -> core::fmt::Result {
write!(self, ":")
}
fn key(&mut self, value: impl crate::WriteJsonKey) -> core::fmt::Result {
value.write_json_key(self)
}
fn value(&mut self, value: impl crate::WriteJsonValue) -> core::fmt::Result {
value.write_json_value(self)
}
fn val_sep(&mut self) -> core::fmt::Result {
write!(self, ",")
}
fn space(&mut self) -> core::fmt::Result {
write!(self, " ")
}
fn newline(&mut self) -> core::fmt::Result {
writeln!(self)
}
}
impl<W> JsonWrite for W where W: core::fmt::Write {}