Skip to content

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.

10 exports Added in v2.0.0 Source

Constructors

empty

Added in v2.0.0 Source

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

  • make for creating a set from explicit values
  • fromIterable for creating a set from an iterable of values
  • clear for emptying an existing mutable set

Signature

declare function empty<K = never>(): MutableHashSet<K>;

fromIterable

Added in v2.0.0 Source

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>;

make

Added in v2.0.0 Source

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

size

Added in v2.0.0 Source

Returns the number of unique values in the MutableHashSet.

When to use

Use to read how many unique values are currently stored in the set.

Signature

declare function size<V>(self: MutableHashSet<V>): number;

Guards

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

Signature

declare function isMutableHashSet<V>(value: unknown): value is MutableHashSet<V>;

Models

MutableHashSet interface

Added in v2.0.0 Source

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

add

Added in v2.0.0 Source

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>;
};

clear

Added in v2.0.0 Source

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>;

remove

Added in v2.0.0 Source

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

has

Added in v2.0.0 Source

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

  • add for adding a value to the set
  • remove for removing a value from the set

Signature

declare const has: {
  <V>(key: V): (self: MutableHashSet<V>) => boolean;
  <V>(self: MutableHashSet<V>, key: V): boolean;
};