bea_codecs/json/encoder
JSON encoders for @derive(encoder):
import bea_codecs/json/encoder
@derive(encoder)
pub type User { name: String, nick: Option(String) }
text = encoder.to_string(user, User.encoder())
@derive(encoder) on User defines user_encoder(), a
fn(User) -> Json, which works with everything in gleam/json.
Conventions: a record is an object with a key per field label, None
is null, and dictionaries need String keys (anything else doesn’t
type check).
Types
Values
pub fn dict(
keys: fn(String) -> json.Json,
values: fn(v) -> json.Json,
) -> fn(dict.Dict(String, v)) -> json.Json
pub fn field(
label: String,
of: fn(a) -> json.Json,
get: fn(r) -> a,
next: fn(a) -> Fields(r),
) -> Fields(r)
pub fn option(
of: fn(a) -> json.Json,
) -> fn(option.Option(a)) -> json.Json