///|
pub(all) struct ObjectWriter(Map[String, Json])
///|
pub fn ObjectWriter::new() -> ObjectWriter {
ObjectWriter(Map::new())
}
///|
pub fn[T : ToJson] ObjectWriter::optional(
writer : ObjectWriter,
key : String,
value : T?,
) -> Unit {
if value is Some(value) {
writer.0.set(key, ToJson::to_json(value))
}
}
///|
pub fn[T : ToJson] ObjectWriter::required(
writer : ObjectWriter,
key : String,
value : T,
) -> Unit {
writer.0.set(key, ToJson::to_json(value))
}
///|
pub fn ObjectWriter::to_json(self : ObjectWriter) -> Json {
Json::object(self.0)
}