Hyperlinkv0.8.0-beta.28

TxChunk

TxChunk.fromIterableconsteffect/TxChunk.ts:195
<A>(iterable: Iterable<A>): Effect.Effect<TxChunk<A>>

Creates a new TxChunk from an iterable.

Details

This function returns a new TxChunk reference containing elements from the provided iterable. No existing TxChunk instances are modified.

Example (Creating from an iterable)

import { Chunk, Effect, TxChunk } from "effect"

const program = Effect.gen(function*() {
  // Create TxChunk from array
  const txChunk = yield* TxChunk.fromIterable([1, 2, 3, 4, 5])

  // Read the contents - automatically transactional
  const chunk = yield* TxChunk.get(txChunk)
  console.log(Chunk.toReadonlyArray(chunk)) // [1, 2, 3, 4, 5]

  // Multi-step atomic modification - use explicit transaction
  yield* Effect.tx(
    Effect.gen(function*() {
      yield* TxChunk.append(txChunk, 6)
      yield* TxChunk.prepend(txChunk, 0)
    })
  )

  const updated = yield* TxChunk.get(txChunk)
  console.log(Chunk.toReadonlyArray(updated)) // [0, 1, 2, 3, 4, 5, 6]
})
constructors
Source effect/TxChunk.ts:1952 lines
export const fromIterable = <A>(iterable: Iterable<A>): Effect.Effect<TxChunk<A>> =>
  Effect.map(TxRef.make(Chunk.fromIterable(iterable)), (ref) => makeUnsafe(ref))