libero/json/codegen
Typed JSON encoder and decoder codegen.
Generates Gleam source code for per-type json.Json builders and
typed decoders. Each discovered type gets a pair of functions:
json_encode_<qualified_atom_name> — builds a json.Json value
json_decode_<qualified_atom_name> — validates and decodes from Dynamic
The generated wire format follows the JSON-RPC-v1 contract shape:
{ “type”: “
Labelled variants encode fields as a JSON object under “fields”; unlabelled variants encode them as a JSON array. Mixed labelled / unlabelled constructors are rejected at codegen time.
Values
pub fn generate(
discovered: List(walker.DiscoveredType),
) -> Result(String, List(error.JsonError))
Generate Gleam source for JSON typed encoders and decoders.
Returns Ok(source) on success, or Error(List(JsonError)) if any
constructor has mixed labelled/unlabelled fields (rejected for JSON v1).