Module Set.String
Specalized when value type is string, more efficient than the generic type, its compare behavior is fixed using the built-in comparison
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
type value = stringThe type of the set elements.
type tThe type of sets.
val empty : tval fromArray : value array -> tval fromSortedArrayUnsafe : value array -> tval isEmpty : t -> boolval has : t -> value -> boolval add : t -> value -> tadd s x If x was already in s, s is returned unchanged.
val mergeMany : t -> value array -> tval remove : t -> value -> tremove m x If x was not in m, m is returned reference unchanged.
val removeMany : t -> value array -> tval union : t -> t -> tval intersect : t -> t -> tval diff : t -> t -> tval subset : t -> t -> boolsubset s1 s2 tests whether the set s1 is a subset of the set s2.
val cmp : t -> t -> intTotal ordering between sets. Can be used as the ordering function for doing sets of sets.
val eq : t -> t -> booleq s1 s2 tests whether the sets s1 and s2 are equal, that is, contain equal elements.
val forEachU : t -> (value -> unit) Js.Fn.arity1 -> unitval forEach : t -> (value -> unit) -> unitforEach s f applies f in turn to all elements of s. In increasing order
val reduceU : t -> 'a -> ('a -> value -> 'a) Js.Fn.arity2 -> 'aval reduce : t -> 'a -> ('a -> value -> 'a) -> 'aIterate in increasing order.
val everyU : t -> (value -> bool) Js.Fn.arity1 -> boolval every : t -> (value -> bool) -> boolevery p s checks if all elements of the set satisfy the predicate p. Order unspecified.
val someU : t -> (value -> bool) Js.Fn.arity1 -> boolval some : t -> (value -> bool) -> boolsome p s checks if at least one element of the set satisfies the predicate p. Oder unspecified.
val keepU : t -> (value -> bool) Js.Fn.arity1 -> tval keep : t -> (value -> bool) -> tkeep p s returns the set of all elements in s that satisfy predicate p.
val partitionU : t -> (value -> bool) Js.Fn.arity1 -> t * tval partition : t -> (value -> bool) -> t * tpartition 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.
val size : t -> intval toList : t -> value listIn increasing order
val toArray : t -> value arrayval minimum : t -> value optionval minUndefined : t -> value Js.undefinedval maximum : t -> value optionval maxUndefined : t -> value Js.undefinedval get : t -> value -> value optionval getUndefined : t -> value -> value Js.undefinedval getExn : t -> value -> valueval split : t -> value -> (t * t) * boolsplit 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.
val checkInvariantInternal : t -> unitraise when invariant is not held