30
30
31
31
For example:
32
32
{[
33
- type t = int
33
+ type t = int
34
34
module I0 =
35
35
(val Belt.Id.hashableU
36
36
~hash:(fun[\@bs] (a : t) -> a & 0xff_ff)
@@ -75,13 +75,13 @@ module Int = Belt_HashMapInt
75
75
76
76
77
77
(* * Specalized when key type is [string], more efficient
78
- than the gerneic type *)
78
+ than the gerneic type *)
79
79
module String = Belt_HashMapString
80
80
81
81
82
82
83
83
84
- type ('key,'value,'id) t
84
+ type ('key,'value,'id) t
85
85
(* * The type of hash tables from type ['key] to type ['value]. *)
86
86
87
87
type ('a, 'id) id = ('a , 'id ) Belt_Id .hashable
@@ -93,30 +93,32 @@ val make: hintSize:int -> id:('key, 'id) id -> ('key,'value,'id) t
93
93
val clear : ('key , 'value , 'id ) t -> unit
94
94
(* * Empty a hash table. *)
95
95
96
- val isEmpty : _ t -> bool
96
+ val isEmpty : _ t -> bool
97
97
98
98
val set : ('key , 'value , 'id ) t -> 'key -> 'value -> unit
99
99
(* * [set tbl k v] if [k] does not exist,
100
100
add the binding [k,v], otherwise, update the old value with the new
101
101
[v]
102
102
*)
103
-
103
+
104
104
val copy : ('key , 'value , 'id ) t -> ('key , 'value , 'id ) t
105
-
105
+
106
106
val get : ('key , 'value , 'id ) t -> 'key -> 'value option
107
107
108
-
108
+
109
109
val has : ('key , 'value , 'id ) t -> 'key -> bool
110
110
(* * [has tbl x] checks if [x] is bound in [tbl]. *)
111
111
112
112
val remove : ('key , 'value , 'id ) t -> 'key -> unit
113
113
114
+ val forEachU : ('key , 'value , 'id ) t -> ('key -> 'value -> unit [@ bs]) -> unit
114
115
val forEach : ('key , 'value , 'id ) t -> ('key -> 'value -> unit ) -> unit
115
116
(* * [forEach tbl f] applies [f] to all bindings in table [tbl].
116
117
[f] receives the key as first argument, and the associated value
117
118
as second argument. Each binding is presented exactly once to [f].
118
119
*)
119
120
121
+ val reduceU : ('key , 'value , 'id ) t -> 'c -> ('c -> 'key -> 'value -> 'c [@ bs]) -> 'c
120
122
val reduce : ('key , 'value , 'id ) t -> 'c -> ('c -> 'key -> 'value -> 'c ) -> 'c
121
123
(* * [reduce tbl init f] computes
122
124
[(f kN dN ... (f k1 d1 init)...)],
@@ -131,10 +133,11 @@ val reduce: ('key, 'value, 'id ) t -> 'c -> ('c -> 'key -> 'value -> 'c) -> 'c
131
133
*)
132
134
133
135
136
+ val keepMapInPlaceU : ('key , 'value , 'id ) t -> ('key -> 'value -> 'value option [@ bs]) -> unit
134
137
val keepMapInPlace : ('key , 'value , 'id ) t -> ('key -> 'value -> 'value option ) -> unit
135
138
136
139
137
- val size : _ t -> int
140
+ val size : _ t -> int
138
141
(* * [size tbl] returns the number of bindings in [tbl].
139
142
It takes constant time. *)
140
143
@@ -143,23 +146,14 @@ val size: _ t -> int
143
146
144
147
145
148
146
- val toArray : ('key , 'value , 'id ) t -> ('key * 'value ) array
147
- val keysToArray : ('key , _ , _ ) t -> 'key array
148
- val valuesToArray : (_ ,'value,_) t -> 'value array
149
- val fromArray : ('key * 'value ) array -> id :('key ,'id ) id -> ('key , 'value , 'id ) t
149
+ val toArray : ('key , 'value , 'id ) t -> ('key * 'value ) array
150
+ val keysToArray : ('key , _ , _ ) t -> 'key array
151
+ val valuesToArray : (_ ,'value,_) t -> 'value array
152
+ val fromArray : ('key * 'value ) array -> id :('key ,'id ) id -> ('key , 'value , 'id ) t
150
153
val mergeMany : ('key , 'value , 'id ) t -> ('key * 'value ) array -> unit
151
154
val getBucketHistogram : _ t -> int array
152
155
val logStats : _ t -> unit
153
156
154
- val ofArray : ('key * 'value ) array -> id :('key ,'id ) id -> ('key , 'value , 'id ) t
157
+ val ofArray : ('key * 'value ) array -> id :('key ,'id ) id -> ('key , 'value , 'id ) t
155
158
[@@ ocaml.deprecated "Use fromArray instead" ]
156
159
157
-
158
- (* * {1 Uncurried version} *)
159
-
160
-
161
- val forEachU : ('key , 'value , 'id ) t -> ('key -> 'value -> unit [@ bs]) -> unit
162
-
163
- val reduceU : ('key , 'value , 'id ) t -> 'c -> ('c -> 'key -> 'value -> 'c [@ bs]) -> 'c
164
-
165
- val keepMapInPlaceU : ('key , 'value , 'id ) t -> ('key -> 'value -> 'value option [@ bs]) -> unit
0 commit comments