Packages
gleam_stdlib
0.5.0
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam/dynamic.gleam
import gleam/list as list_mod
import gleam/atom
import gleam/result
// `Dynamic` data is data that we don"t know the type of yet.
// We likely get data like this from interop with Erlang, or from
// IO with the outside world.
//
pub external type Dynamic;
// Convert any Gleam data into `Dynamic` data.
//
pub external fn from(a) -> Dynamic = "gleam_stdlib" "identity";
// Unsafely cast a Dynamic value into any other type.
//
// This is an escape hatch for the type system that may be useful when wrapping
// native Erlang APIs. It is to be used as a last measure only.
//
pub external fn unsafe_coerce(a) -> b = "gleam_stdlib" "identity";
pub external fn string(from: Dynamic) -> Result(String, String)
= "gleam_stdlib" "decode_string"
pub external fn int(from: Dynamic) -> Result(Int, String)
= "gleam_stdlib" "decode_int"
pub external fn float(from: Dynamic) -> Result(Float, String)
= "gleam_stdlib" "decode_float"
pub external fn atom(from: Dynamic) -> Result(atom.Atom, String)
= "gleam_stdlib" "decode_atom"
pub external fn bool(from: Dynamic) -> Result(Bool, String)
= "gleam_stdlib" "decode_bool"
pub external fn thunk(from: Dynamic) -> Result(fn() -> Dynamic, String)
= "gleam_stdlib" "decode_thunk"
external fn list_dynamic(from: Dynamic) -> Result(List(Dynamic), String)
= "gleam_stdlib" "decode_list"
pub fn list(from dynamic, containing decoder_type) {
dynamic
|> list_dynamic
|> result.then(_, list_mod.traverse(_, decoder_type))
}
pub external fn field(from: Dynamic, named: a) -> Result(Dynamic, String)
= "gleam_stdlib" "decode_field"