Hyperlinkv0.8.0-beta.28

TxHashSet

TxHashSet.addconsteffect/TxHashSet.ts:329
<V>(value: V): (self: TxHashSet<V>) => Effect.Effect<void>
<V>(self: TxHashSet<V>, value: V): Effect.Effect<void>

Adds a value to the TxHashSet. If the value already exists, the operation has no effect.

Details

This function mutates the original TxHashSet by adding the specified value. It does not return a new TxHashSet reference.

Example (Adding values)

import { Effect, TxHashSet } from "effect"

const program = Effect.gen(function*() {
  const txSet = yield* TxHashSet.make("a", "b")

  yield* TxHashSet.add(txSet, "c")
  console.log(yield* TxHashSet.size(txSet)) // 3
  console.log(yield* TxHashSet.has(txSet, "c")) // true

  // Adding existing value has no effect
  yield* TxHashSet.add(txSet, "a")
  console.log(yield* TxHashSet.size(txSet)) // 3 (unchanged)
})
mutations
export const add: {
  <V>(value: V): (self: TxHashSet<V>) => Effect.Effect<void>
  <V>(self: TxHashSet<V>, value: V): Effect.Effect<void>
} = dual<
  <V>(value: V) => (self: TxHashSet<V>) => Effect.Effect<void>,
  <V>(self: TxHashSet<V>, value: V) => Effect.Effect<void>
>(2, <V>(self: TxHashSet<V>, value: V) => TxRef.update(self.ref, (set) => HashSet.add(set, value)))