diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/dynamic.gleam | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gleam/dynamic.gleam b/src/gleam/dynamic.gleam index fa1b69e..82cfa2f 100644 --- a/src/gleam/dynamic.gleam +++ b/src/gleam/dynamic.gleam @@ -421,11 +421,12 @@ if javascript { /// pub fn element( from data: Dynamic, - get index: Int, -) -> Result(Dynamic, DecodeError) { + at index: Int, + of inner_type: Decoder(t), +) -> Result(t, DecodeError) { try tuple = decode_tuple(data) let size = tuple_size(tuple) - case index >= 0 { + try data = case index >= 0 { True -> case index < size { True -> tuple_get(tuple, index) @@ -437,6 +438,7 @@ pub fn element( False -> at_least_decode_tuple_error(int.absolute_value(index), data) } } + inner_type(data) } fn exact_decode_tuple_error(size: Int, data: Dynamic) -> Result(a, DecodeError) { |