json/blueprint/dynamic
Types
Error returned when decoding fails.
This was previously provided by gleam/dynamic but was removed there when
the old decoder API was deleted in gleam_stdlib 0.60.0, so it is defined
locally here to keep this vendored decoder self-contained.
pub type DecodeError {
DecodeError(
expected: String,
found: String,
path: List(String),
)
}
Constructors
-
DecodeError(expected: String, found: String, path: List(String))
pub type DecodeErrors =
List(DecodeError)
A decoder is a function that turns dynamically typed Dynamic data into
typed data, returning the decoded value or a list of DecodeErrors.
This was previously provided by gleam/dynamic but was removed there when
the old decoder API was deleted in gleam_stdlib 0.60.0.
pub type Decoder(t) =
fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
Values
pub fn any(
of decoders: List(
fn(dynamic.Dynamic) -> Result(a, List(DecodeError)),
),
) -> fn(dynamic.Dynamic) -> Result(a, List(DecodeError))
pub fn bit_array(
from data: dynamic.Dynamic,
) -> Result(BitArray, List(DecodeError))
pub fn bool(
from data: dynamic.Dynamic,
) -> Result(Bool, List(DecodeError))
pub fn classify(data: dynamic.Dynamic) -> String
Return a string indicating the type of the dynamic value.
This function may be useful for constructing error messages or logs. If you
want to turn dynamic data into well typed data then you want the
gleam/dynamic/decode module.
classify(from("Hello"))
// -> "String"
pub fn decode1(
constructor: fn(t1) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode2(
constructor: fn(t1, t2) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode3(
constructor: fn(t1, t2, t3) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode4(
constructor: fn(t1, t2, t3, t4) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
t4: fn(dynamic.Dynamic) -> Result(t4, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode5(
constructor: fn(t1, t2, t3, t4, t5) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
t4: fn(dynamic.Dynamic) -> Result(t4, List(DecodeError)),
t5: fn(dynamic.Dynamic) -> Result(t5, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode6(
constructor: fn(t1, t2, t3, t4, t5, t6) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
t4: fn(dynamic.Dynamic) -> Result(t4, List(DecodeError)),
t5: fn(dynamic.Dynamic) -> Result(t5, List(DecodeError)),
t6: fn(dynamic.Dynamic) -> Result(t6, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode7(
constructor: fn(t1, t2, t3, t4, t5, t6, t7) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
t4: fn(dynamic.Dynamic) -> Result(t4, List(DecodeError)),
t5: fn(dynamic.Dynamic) -> Result(t5, List(DecodeError)),
t6: fn(dynamic.Dynamic) -> Result(t6, List(DecodeError)),
t7: fn(dynamic.Dynamic) -> Result(t7, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode8(
constructor: fn(t1, t2, t3, t4, t5, t6, t7, t8) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
t4: fn(dynamic.Dynamic) -> Result(t4, List(DecodeError)),
t5: fn(dynamic.Dynamic) -> Result(t5, List(DecodeError)),
t6: fn(dynamic.Dynamic) -> Result(t6, List(DecodeError)),
t7: fn(dynamic.Dynamic) -> Result(t7, List(DecodeError)),
t8: fn(dynamic.Dynamic) -> Result(t8, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn decode9(
constructor: fn(t1, t2, t3, t4, t5, t6, t7, t8, t9) -> t,
t1: fn(dynamic.Dynamic) -> Result(t1, List(DecodeError)),
t2: fn(dynamic.Dynamic) -> Result(t2, List(DecodeError)),
t3: fn(dynamic.Dynamic) -> Result(t3, List(DecodeError)),
t4: fn(dynamic.Dynamic) -> Result(t4, List(DecodeError)),
t5: fn(dynamic.Dynamic) -> Result(t5, List(DecodeError)),
t6: fn(dynamic.Dynamic) -> Result(t6, List(DecodeError)),
t7: fn(dynamic.Dynamic) -> Result(t7, List(DecodeError)),
t8: fn(dynamic.Dynamic) -> Result(t8, List(DecodeError)),
t9: fn(dynamic.Dynamic) -> Result(t9, List(DecodeError)),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn dict(
of key_type: fn(dynamic.Dynamic) -> Result(k, List(DecodeError)),
to value_type: fn(dynamic.Dynamic) -> Result(
v,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
dict.Dict(k, v),
List(DecodeError),
)
pub fn dynamic(
value: dynamic.Dynamic,
) -> Result(dynamic.Dynamic, List(DecodeError))
pub fn element(
at index: Int,
of inner_type: fn(dynamic.Dynamic) -> Result(
inner,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(inner, List(DecodeError))
pub fn field(
named name: a,
of inner_type: fn(dynamic.Dynamic) -> Result(
t,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(t, List(DecodeError))
pub fn float(
from data: dynamic.Dynamic,
) -> Result(Float, List(DecodeError))
pub fn int(
from data: dynamic.Dynamic,
) -> Result(Int, List(DecodeError))
pub fn list(
of decoder_type: fn(dynamic.Dynamic) -> Result(
inner,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(List(inner), List(DecodeError))
pub fn optional(
of decode: fn(dynamic.Dynamic) -> Result(
inner,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
option.Option(inner),
List(DecodeError),
)
pub fn optional_field(
named name: a,
of inner_type: fn(dynamic.Dynamic) -> Result(
t,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
option.Option(t),
List(DecodeError),
)
pub fn result(
ok decode_ok: fn(dynamic.Dynamic) -> Result(
a,
List(DecodeError),
),
error decode_error: fn(dynamic.Dynamic) -> Result(
e,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
Result(a, e),
List(DecodeError),
)
pub fn shallow_list(
from value: dynamic.Dynamic,
) -> Result(List(dynamic.Dynamic), List(DecodeError))
pub fn string(
from data: dynamic.Dynamic,
) -> Result(String, List(DecodeError))
pub fn tuple2(
first decode1: fn(dynamic.Dynamic) -> Result(
a,
List(DecodeError),
),
second decode2: fn(dynamic.Dynamic) -> Result(
b,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(#(a, b), List(DecodeError))
pub fn tuple3(
first decode1: fn(dynamic.Dynamic) -> Result(
a,
List(DecodeError),
),
second decode2: fn(dynamic.Dynamic) -> Result(
b,
List(DecodeError),
),
third decode3: fn(dynamic.Dynamic) -> Result(
c,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(#(a, b, c), List(DecodeError))
pub fn tuple4(
first decode1: fn(dynamic.Dynamic) -> Result(
a,
List(DecodeError),
),
second decode2: fn(dynamic.Dynamic) -> Result(
b,
List(DecodeError),
),
third decode3: fn(dynamic.Dynamic) -> Result(
c,
List(DecodeError),
),
fourth decode4: fn(dynamic.Dynamic) -> Result(
d,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
#(a, b, c, d),
List(DecodeError),
)
pub fn tuple5(
first decode1: fn(dynamic.Dynamic) -> Result(
a,
List(DecodeError),
),
second decode2: fn(dynamic.Dynamic) -> Result(
b,
List(DecodeError),
),
third decode3: fn(dynamic.Dynamic) -> Result(
c,
List(DecodeError),
),
fourth decode4: fn(dynamic.Dynamic) -> Result(
d,
List(DecodeError),
),
fifth decode5: fn(dynamic.Dynamic) -> Result(
e,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
#(a, b, c, d, e),
List(DecodeError),
)
pub fn tuple6(
first decode1: fn(dynamic.Dynamic) -> Result(
a,
List(DecodeError),
),
second decode2: fn(dynamic.Dynamic) -> Result(
b,
List(DecodeError),
),
third decode3: fn(dynamic.Dynamic) -> Result(
c,
List(DecodeError),
),
fourth decode4: fn(dynamic.Dynamic) -> Result(
d,
List(DecodeError),
),
fifth decode5: fn(dynamic.Dynamic) -> Result(
e,
List(DecodeError),
),
sixth decode6: fn(dynamic.Dynamic) -> Result(
f,
List(DecodeError),
),
) -> fn(dynamic.Dynamic) -> Result(
#(a, b, c, d, e, f),
List(DecodeError),
)