Belt_SetString
This module is Belt.Set
specialized with value type to be a primitive type. It is more efficient in general, the API is the same with Belt_Set
except its value type is fixed, and identity is not needed(using the built-in one)
See Belt.Set
The type of the set elements.
let empty: t;
let isEmpty: t => bool;
Total ordering between sets. Can be used as the ordering function for doing sets of sets.
eq s1 s2
tests whether the sets s1
and s2
are equal, that is, contain equal elements.
let forEachU: t => Js.Fn.arity1((value => unit)) => unit;
forEach s f
applies f
in turn to all elements of s
. In increasing order
let reduceU: t => 'a => Js.Fn.arity2(('a => value => 'a)) => 'a;
let everyU: t => Js.Fn.arity1((value => bool)) => bool;
every p s
checks if all elements of the set satisfy the predicate p
. Order unspecified.
let someU: t => Js.Fn.arity1((value => bool)) => bool;
some p s
checks if at least one element of the set satisfies the predicate p
. Oder unspecified.
let keepU: t => Js.Fn.arity1((value => bool)) => t;
keep p s
returns the set of all elements in s
that satisfy predicate p
.
let partitionU: t => Js.Fn.arity1((value => bool)) => (t, t);
partition p s
returns a pair of sets (s1, s2)
, where s1
is the set of all the elements of s
that satisfy the predicate p
, and s2
is the set of all the elements of s
that do not satisfy p
.
let size: t => int;
let minUndefined: t => Js.undefined(value);
let maxUndefined: t => Js.undefined(value);
let getUndefined: t => value => Js.undefined(value);
split x s
returns a triple (l, present, r)
, where l
is the set of elements of s
that are strictly less than x
; r
is the set of elements of s
that are strictly greater than x
; present
is false
if s
contains no element equal to x
, or true
if s
contains an element equal to x
.
let checkInvariantInternal: t => unit;
raise when invariant is not held