diff options
Diffstat (limited to 'gen/src/gleam@dynamic.erl')
-rw-r--r-- | gen/src/gleam@dynamic.erl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gen/src/gleam@dynamic.erl b/gen/src/gleam@dynamic.erl new file mode 100644 index 0000000..e20db87 --- /dev/null +++ b/gen/src/gleam@dynamic.erl @@ -0,0 +1,40 @@ +-module(gleam@dynamic). +-compile(no_auto_import). + +-export([from/1, unsafe_coerce/1, string/1, int/1, float/1, atom/1, bool/1, thunk/1, list/2, field/2]). + +from(A) -> + gleam_stdlib:identity(A). + +unsafe_coerce(A) -> + gleam_stdlib:identity(A). + +string(A) -> + gleam_stdlib:decode_string(A). + +int(A) -> + gleam_stdlib:decode_int(A). + +float(A) -> + gleam_stdlib:decode_float(A). + +atom(A) -> + gleam_stdlib:decode_atom(A). + +bool(A) -> + gleam_stdlib:decode_bool(A). + +thunk(A) -> + gleam_stdlib:decode_thunk(A). + +list_dynamic(A) -> + gleam_stdlib:decode_list(A). + +list(Dynamic, DecoderType) -> + gleam@result:then( + list_dynamic(Dynamic), + fun(Capture1) -> gleam@list:traverse(Capture1, DecoderType) end + ). + +field(A, B) -> + gleam_stdlib:decode_field(A, B). |