libero/json/runtime

Runtime helpers used by generated JSON decoders.

The Gleam fallback uses gleam/dynamic/decode. The JavaScript target uses direct JS checks to avoid paying the dynamic decoder cost for every envelope, constructor, and field lookup.

Values

pub fn array_at(
  value value: dynamic.Dynamic,
  index index: Int,
  path path: String,
) -> Result(dynamic.Dynamic, List(error.JsonError))
pub fn array_length(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(Int, List(error.JsonError))
pub fn bool(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(Bool, List(error.JsonError))
pub fn expected_size_error(
  path path: String,
  expected expected: Int,
  actual actual: Int,
) -> List(error.JsonError)
pub fn field(
  value value: dynamic.Dynamic,
  name name: String,
  path path: String,
) -> Result(dynamic.Dynamic, List(error.JsonError))
pub fn field_string(
  value value: dynamic.Dynamic,
  name name: String,
  path path: String,
) -> Result(String, List(error.JsonError))
pub fn float(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(Float, List(error.JsonError))
pub fn int(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(Int, List(error.JsonError))
pub fn list(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(List(dynamic.Dynamic), List(error.JsonError))
pub fn nil(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(Nil, List(error.JsonError))
pub fn object_entries(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(
  List(#(String, dynamic.Dynamic)),
  List(error.JsonError),
)
pub fn object_size(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(Int, List(error.JsonError))
pub fn pair_entries(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(
  List(#(dynamic.Dynamic, dynamic.Dynamic)),
  List(error.JsonError),
)
pub fn string(
  value value: dynamic.Dynamic,
  path path: String,
) -> Result(String, List(error.JsonError))
Search Document