aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2022-01-01 21:03:42 +0000
committerLouis Pilfold <louis@lpil.uk>2022-01-01 21:08:50 +0000
commit5c07c721e2302b73b20f27a58634a8a3dfa7a6c3 (patch)
tree42ed76f4463b72e1d67faa5b77cda56b79640ec1
parent284b9f0ff406d40a8eaf2b6d8faaef8813594153 (diff)
downloadgleam_stdlib-5c07c721e2302b73b20f27a58634a8a3dfa7a6c3.tar.gz
gleam_stdlib-5c07c721e2302b73b20f27a58634a8a3dfa7a6c3.zip
Change dynamic convention
-rw-r--r--src/gleam/dynamic.gleam20
-rw-r--r--test/gleam/dynamic_test.gleam28
2 files changed, 24 insertions, 24 deletions
diff --git a/src/gleam/dynamic.gleam b/src/gleam/dynamic.gleam
index a3c43d8..c500640 100644
--- a/src/gleam/dynamic.gleam
+++ b/src/gleam/dynamic.gleam
@@ -213,20 +213,20 @@ if javascript {
}
/// Checks to see whether a `Dynamic` value is a list, and returns that list if it
-/// is.
+/// is. The types of the elements are not checked.
///
-/// If you wish to decode all the elements in the list use the `typed_list`
+/// If you wish to decode all the elements in the list use the `list`
/// instead.
///
/// ## Examples
///
-/// > list(from(["a", "b", "c"]))
+/// > shallow_list(from(["a", "b", "c"]))
/// Ok([from("a"), from("b"), from("c")])
///
-/// > list(1)
+/// > shallow_list(1)
/// Error(DecodeError(expected: "Int", found: "Int"))
///
-pub fn list(from value: Dynamic) -> Result(List(Dynamic), DecodeError) {
+pub fn shallow_list(from value: Dynamic) -> Result(List(Dynamic), DecodeError) {
decode_list(value)
}
@@ -318,21 +318,21 @@ pub fn typed_result(
///
/// ## Examples
///
-/// > typed_list(from(["a", "b", "c"]), of: string)
+/// > list(from(["a", "b", "c"]), of: string)
/// Ok(["a", "b", "c"])
///
-/// > typed_list(from([1, 2, 3]), of: string)
+/// > list(from([1, 2, 3]), of: string)
/// Error(DecodeError(expected: "String", found: "Int"))
///
-/// > typed_list(from("ok"), of: string)
+/// > list(from("ok"), of: string)
/// Error(DecodeError(expected: "List", found: "String"))
///
-pub fn typed_list(
+pub fn list(
from dynamic: Dynamic,
of decoder_type: fn(Dynamic) -> Result(inner, DecodeError),
) -> Result(List(inner), DecodeError) {
dynamic
- |> list
+ |> shallow_list
|> result.then(list.try_map(_, decoder_type))
}
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam
index 08ab913..8b34820 100644
--- a/test/gleam/dynamic_test.gleam
+++ b/test/gleam/dynamic_test.gleam
@@ -155,45 +155,45 @@ pub fn bool_test() {
|> should.equal(Error(DecodeError(expected: "Bool", found: "List")))
}
-pub fn typed_list_test() {
+pub fn list_test() {
[]
|> dynamic.from
- |> dynamic.typed_list(dynamic.string)
+ |> dynamic.list(dynamic.string)
|> should.equal(Ok([]))
[]
|> dynamic.from
- |> dynamic.typed_list(dynamic.int)
+ |> dynamic.list(dynamic.int)
|> should.equal(Ok([]))
[1, 2, 3]
|> dynamic.from
- |> dynamic.typed_list(dynamic.int)
+ |> dynamic.list(dynamic.int)
|> should.equal(Ok([1, 2, 3]))
[[1], [2], [3]]
|> dynamic.from
- |> dynamic.typed_list(dynamic.typed_list(_, dynamic.int))
+ |> dynamic.list(dynamic.list(_, dynamic.int))
|> should.equal(Ok([[1], [2], [3]]))
1
|> dynamic.from
- |> dynamic.typed_list(dynamic.string)
+ |> dynamic.list(dynamic.string)
|> should.be_error
1.0
|> dynamic.from
- |> dynamic.typed_list(dynamic.int)
+ |> dynamic.list(dynamic.int)
|> should.be_error
[""]
|> dynamic.from
- |> dynamic.typed_list(dynamic.int)
+ |> dynamic.list(dynamic.int)
|> should.be_error
[dynamic.from(1), dynamic.from("not an int")]
|> dynamic.from
- |> dynamic.typed_list(dynamic.int)
+ |> dynamic.list(dynamic.int)
|> should.be_error
}
@@ -745,25 +745,25 @@ pub fn map_test() {
|> should.equal(Error(DecodeError(expected: "Map", found: "Int")))
}
-pub fn list_test() {
+pub fn shallow_list_test() {
[]
|> dynamic.from
- |> dynamic.list
+ |> dynamic.shallow_list
|> should.equal(Ok([]))
[1, 2]
|> dynamic.from
- |> dynamic.list
+ |> dynamic.shallow_list
|> should.equal(Ok([dynamic.from(1), dynamic.from(2)]))
[dynamic.from(1), dynamic.from(2.0)]
|> dynamic.from
- |> dynamic.list
+ |> dynamic.shallow_list
|> should.equal(Ok([dynamic.from(1), dynamic.from(2.0)]))
1
|> dynamic.from
- |> dynamic.list
+ |> dynamic.shallow_list
|> should.equal(Error(DecodeError(expected: "List", found: "Int")))
}