MutableHashSet
Stores unique values in a mutable hash set.
MutableHashSet updates the same collection in place and supports fast membership checks, insertion, removal, clearing, and iteration. It is built on MutableHashMap: each set value is stored as a map key, so uniqueness follows the same hashing and equality rules as the underlying mutable hash map.
Constructors
Signature
declare function empty<K = never>(): MutableHashSet<K>;fromIterable
Creates a MutableHashSet from an iterable collection of values. Duplicates are automatically removed.
When to use
Use to build a mutable hash set from any iterable of values.
Signature
declare function fromIterable<K = never>(keys: Iterable<K>): MutableHashSet<K>;Creates a MutableHashSet from a variable number of values. Duplicates are automatically removed.
When to use
Use to build a mutable hash set from explicit values.
Signature
declare function make<Keys extends readonly Array<unknown>>(...keys: Keys): MutableHashSet<Keys[number]>Getters
Guards
isMutableHashSet
Checks whether the specified value is a MutableHashSet, false otherwise.
When to use
Use to narrow an unknown value before treating it as a mutable hash set.
Details
The check looks for the MutableHashSet runtime marker.
Gotchas
Native Set values do not satisfy this check.
See
MutableHashSetfor the mutable hash set interface
Signature
declare function isMutableHashSet<V>(value: unknown): value is MutableHashSet<V>;Models
MutableHashSet interface
A mutable hash set for storing unique values with Effect structural equality support.
When to use
Use to store and mutate a collection of unique values with Effect hashing and equality semantics.
Details
Operations mutate the set in place. Values that implement Equal / Hash can be de-duplicated structurally; other values use normal JavaScript reference or primitive equality.
Signature
interface MutableHashSet<out V> extends Iterable<V>, Pipeable, Inspectable {
readonly "~effect/collections/MutableHashSet": "~effect/collections/MutableHashSet";
readonly keyMap: MutableHashMap<V, boolean>;
}Mutations
Adds a value to the MutableHashSet, mutating the set in place. If the value already exists, the set remains unchanged.
When to use
Use to insert a value into a mutable set while keeping uniqueness.
Signature
declare const add: {
<V>(key: V): (self: MutableHashSet<V>) => MutableHashSet<V>;
<V>(self: MutableHashSet<V>, key: V): MutableHashSet<V>;
};Removes all values from the MutableHashSet, mutating the set in place. The set becomes empty after this operation.
When to use
Use to empty a mutable set while keeping the same set instance.
Signature
declare function clear<V>(self: MutableHashSet<V>): MutableHashSet<V>;Removes the specified value from the MutableHashSet, mutating the set in place. If the value doesn't exist, the set remains unchanged.
When to use
Use to delete a value from a mutable set if it is present.
Signature
declare const remove: {
<V>(key: V): (self: MutableHashSet<V>) => MutableHashSet<V>;
<V>(self: MutableHashSet<V>, key: V): MutableHashSet<V>;
};Predicates
Checks whether the MutableHashSet contains the specified value.
When to use
Use to test whether a mutable set currently contains a value.
Details
Membership follows the same hashing and equality rules as the underlying MutableHashMap.
See
Signature
declare const has: {
<V>(key: V): (self: MutableHashSet<V>) => boolean;
<V>(self: MutableHashSet<V>, key: V): boolean;
};
Creates an empty MutableHashSet.
When to use
Use to create a fresh mutable set before adding values over time.
Details
Each call returns a new empty set backed by an empty
MutableHashMap.See
makefor creating a set from explicit valuesfromIterablefor creating a set from an iterable of valuesclearfor emptying an existing mutable set