Hyperlinkv0.8.0-beta.28

Chunk

Chunk.separateconsteffect/Chunk.ts:1832
<A, B>(self: Chunk<Result<B, A>>): [Chunk<A>, Chunk<B>]

Separates a chunk of Result values into a chunk of failures and a chunk of successes.

Details

The returned tuple is [failures, successes], preserving the original order within each side.

Example (Separating failures and successes)

import { Chunk, Result } from "effect"

const chunk = Chunk.make(
  Result.succeed(1),
  Result.fail("error1"),
  Result.succeed(2),
  Result.fail("error2"),
  Result.succeed(3)
)

const [errors, values] = Chunk.separate(chunk)
console.log(Chunk.toArray(errors)) // ["error1", "error2"]
console.log(Chunk.toArray(values)) // [1, 2, 3]

// All successes
const allSuccesses = Chunk.make(Result.succeed(1), Result.succeed(2))
const [noErrors, allValues] = Chunk.separate(allSuccesses)
console.log(Chunk.toArray(noErrors)) // []
console.log(Chunk.toArray(allValues)) // [1, 2]
filtering
Source effect/Chunk.ts:18325 lines
export const separate = <A, B>(self: Chunk<Result<B, A>>): [Chunk<A>, Chunk<B>] =>
  pipe(
    RA.separate(toReadonlyArray(self)),
    ([l, r]) => [fromArrayUnsafe(l), fromArrayUnsafe(r)]
  )