Hyperlinkv0.8.0-beta.28

TxChunk

TxChunk.updateconsteffect/TxChunk.ts:301
<A>(f: (current: Chunk.Chunk<NoInfer<A>>) => Chunk.Chunk<A>): (
  self: TxChunk<A>
) => Effect.Effect<void>
<A>(
  self: TxChunk<A>,
  f: (current: Chunk.Chunk<A>) => Chunk.Chunk<A>
): Effect.Effect<void>

Updates the value of the TxChunk using the provided function.

Details

This function mutates the original TxChunk by updating its internal state. It does not return a new TxChunk reference.

Example (Updating the stored chunk)

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

const program = Effect.gen(function*() {
  const txChunk = yield* TxChunk.fromIterable([1, 2, 3])

  // Update the chunk by reversing it atomically
  yield* TxChunk.update(txChunk, (chunk) => Chunk.reverse(chunk))

  const result = yield* TxChunk.get(txChunk)
  console.log(Chunk.toReadonlyArray(result)) // [3, 2, 1]
})
combinators
Source effect/TxChunk.ts:30110 lines
export const update: {
  <A>(f: (current: Chunk.Chunk<NoInfer<A>>) => Chunk.Chunk<A>): (self: TxChunk<A>) => Effect.Effect<void>
  <A>(self: TxChunk<A>, f: (current: Chunk.Chunk<A>) => Chunk.Chunk<A>): Effect.Effect<void>
} = dual(
  2,
  <A>(
    self: TxChunk<A>,
    f: (current: Chunk.Chunk<A>) => Chunk.Chunk<A>
  ): Effect.Effect<void> => TxRef.update(self.ref, f)
)
Referenced by 9 symbols