Skip to content

Commit 205566b

Browse files
committed
deprecate @sorted_map.of
1 parent 1b08068 commit 205566b

File tree

3 files changed

+37
-23
lines changed

3 files changed

+37
-23
lines changed

sorted_map/map.mbt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,19 @@ pub fn new[K, V]() -> T[K, V] {
3434
}
3535

3636
///|
37-
/// Creates a sorted map from given entries.
37+
/// @alert deprecated "Use @sorted_map.from_array instead"
3838
pub fn of[K : Compare, V](entries : Array[(K, V)]) -> T[K, V] {
3939
let map = { root: None, size: 0 }
4040
entries.each(fn(e) { map.add(e.0, e.1) })
4141
map
4242
}
4343

44+
///| Creates a sorted map from a array of key-value pairs.
45+
pub fn from_array[K : Compare, V](entries : Array[(K, V)]) -> T[K, V] {
46+
let map = { root: None, size: 0 }
47+
entries.each(fn(e) { map.add(e.0, e.1) })
48+
map
49+
}
4450
///|
4551
/// Inserts a key-value pair.
4652
pub fn add[K : Compare, V](self : T[K, V], key : K, value : V) -> Unit {
@@ -454,7 +460,7 @@ test "new" {
454460
}
455461

456462
test "of" {
457-
let map = of([(3, "c"), (2, "b"), (1, "a")])
463+
let map = from_array([(3, "c"), (2, "b"), (1, "a")])
458464
inspect!(map.debug_tree(), content="([2]2,b,([1]1,a,_,_),([1]3,c,_,_))")
459465
inspect!(map.size(), content="3")
460466
}
@@ -514,14 +520,14 @@ test "add4" {
514520
}
515521

516522
test "add duplicate key" {
517-
let map = of([(3, "c"), (2, "b"), (1, "a")])
523+
let map = from_array([(3, "c"), (2, "b"), (1, "a")])
518524
inspect!(map.debug_tree(), content="([2]2,b,([1]1,a,_,_),([1]3,c,_,_))")
519525
map.add(1, "x")
520526
inspect!(map.debug_tree(), content="([2]2,b,([1]1,x,_,_),([1]3,c,_,_))")
521527
}
522528

523529
test "remove" {
524-
let map = of([
530+
let map = from_array([
525531
(1, "a"),
526532
(2, "b"),
527533
(3, "c"),
@@ -583,7 +589,7 @@ test "op_set" {
583589
}
584590

585591
test "clear" {
586-
let map = of([(3, "c"), (2, "b"), (1, "a")])
592+
let map = from_array([(3, "c"), (2, "b"), (1, "a")])
587593
map.clear()
588594
inspect!(map.debug_tree(), content="_")
589595
inspect!(map.size(), content="0")

sorted_map/map_test.mbt

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
// limitations under the License.
1414

1515
test "remove2" {
16-
let map = @sorted_map.of([(1, "a"), (2, "b")])
16+
let map = @sorted_map.from_array([(1, "a"), (2, "b")])
1717
inspect!(map.size(), content="2")
1818
map.remove(1)
1919
inspect!(map.size(), content="1")
2020
}
2121

2222
test "remove3" {
23-
let map = @sorted_map.of([(1, "a"), (2, "b"), (3, "c")])
23+
let map = @sorted_map.from_array([(1, "a"), (2, "b"), (3, "c")])
2424
map.remove(0)
2525
inspect!(map.size(), content="3")
2626
map.remove(4)
@@ -34,7 +34,7 @@ test "remove on empty map" {
3434
}
3535

3636
test "get" {
37-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
37+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
3838
inspect!(
3939
map.get(1),
4040
content=
@@ -57,15 +57,15 @@ test "get" {
5757
}
5858

5959
test "contains" {
60-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
60+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
6161
inspect!(map.contains(1), content="true")
6262
inspect!(map.contains(2), content="true")
6363
inspect!(map.contains(3), content="true")
6464
inspect!(map.contains(4), content="false")
6565
}
6666

6767
test "op_get" {
68-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
68+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
6969
inspect!(
7070
map[1],
7171
content=
@@ -88,8 +88,8 @@ test "op_get" {
8888
}
8989

9090
test "op_equal" {
91-
let a = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
92-
let b = @sorted_map.of([(4, "d"), (5, "e"), (6, "f")])
91+
let a = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
92+
let b = @sorted_map.from_array([(4, "d"), (5, "e"), (6, "f")])
9393
inspect!(a == a, content="true")
9494
inspect!(b == b, content="true")
9595
inspect!(a == b, content="false")
@@ -104,31 +104,31 @@ test "is_empty" {
104104
}
105105

106106
test "size" {
107-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
107+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
108108
inspect!(map.size() == map.size(), content="true")
109109
}
110110

111111
test "each" {
112-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
112+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
113113
let buf = StringBuilder::new()
114114
map.each(fn(k, v) { buf.write_string("\{k}\{v}") })
115115
inspect!(buf.to_string(), content="1a2b3c")
116116
}
117117

118118
test "eachi" {
119-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
119+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
120120
let buf = StringBuilder::new()
121121
map.eachi(fn(i, k, v) { buf.write_string("[\{i}]\{k}\{v}") })
122122
inspect!(buf.to_string(), content="[0]1a[1]2b[2]3c")
123123
}
124124

125125
test "keys" {
126-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
126+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
127127
inspect!(map.keys(), content="[1, 2, 3]")
128128
}
129129

130130
test "values" {
131-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
131+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
132132
inspect!(
133133
map.values(),
134134
content=
@@ -138,7 +138,7 @@ test "values" {
138138
}
139139

140140
test "to_array" {
141-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
141+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
142142
inspect!(
143143
map.to_array(),
144144
content=
@@ -148,7 +148,7 @@ test "to_array" {
148148
}
149149

150150
test "iter" {
151-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
151+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
152152
inspect!(
153153
map.iter().collect(),
154154
content=
@@ -195,7 +195,7 @@ test "arbitrary" {
195195
}
196196

197197
test "iter2" {
198-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
198+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
199199
let buf = StringBuilder::new()
200200
for k, v in map {
201201
buf.write_string("[\{k}\{v}]")
@@ -204,7 +204,7 @@ test "iter2" {
204204
}
205205

206206
test "iter" {
207-
let map = @sorted_map.of([(3, "c"), (2, "b"), (1, "a")])
207+
let map = @sorted_map.from_array([(3, "c"), (2, "b"), (1, "a")])
208208
let buf = StringBuilder::new()
209209
for kv in map {
210210
buf.write_string("[\{kv.0}\{kv.1}]")
@@ -213,7 +213,13 @@ test "iter" {
213213
}
214214

215215
test "range" {
216-
let map = @sorted_map.of([(1, "a"), (2, "b"), (3, "c"), (4, "d"), (5, "e")])
216+
let map = @sorted_map.from_array([
217+
(1, "a"),
218+
(2, "b"),
219+
(3, "c"),
220+
(4, "d"),
221+
(5, "e"),
222+
])
217223
let result = map.range(2, 4)
218224
let buf = StringBuilder::new()
219225
for k, v in result {

sorted_map/sorted_map.mbti

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ package moonbitlang/core/sorted_map
33
alias @moonbitlang/core/quickcheck as @quickcheck
44

55
// Values
6+
fn from_array[K : Compare, V](Array[(K, V)]) -> T[K, V]
7+
68
fn from_iter[K : Compare, V](Iter[(K, V)]) -> T[K, V]
79

810
fn new[K, V]() -> T[K, V]
911

10-
fn of[K : Compare, V](Array[(K, V)]) -> T[K, V]
12+
fn of[K : Compare, V](Array[(K, V)]) -> T[K, V] //deprecated
1113

1214
// Types and methods
1315
type T

0 commit comments

Comments
 (0)