import gleam/json import gleam/dynamic import internal/bar import internal/foo_json pub fn to_json(t: bar.BarJson) { json.object([#("foo", foo_json.to_json(t.foo))]) } pub fn to_string(t: bar.BarJson) { json.to_string(to_json(t)) } pub fn get_decoder_bar() { dynamic.decode1(bar.Bar, dynamic.field("foo", foo_json.get_decoder_foo())) } pub fn from_string(json_str: String) { json.decode(json_str, get_decoder_bar()) }