Hyperlinkv0.8.0-beta.28

Result

Result.makeEquivalenceconsteffect/Result.ts:722
<A, E>(
  success: Equivalence.Equivalence<A>,
  failure: Equivalence.Equivalence<E>
): Equivalence.Equivalence<Result<A, E>>

Creates an Equivalence for comparing two Result values.

Details

  • Two Success values are equal when the success equivalence says so
  • Two Failure values are equal when the failure equivalence says so
  • A Success and a Failure are never equal

Example (Comparing Results for equality)

import { Equivalence, Result } from "effect"

const eq = Result.makeEquivalence(
  Equivalence.strictEqual<number>(),
  Equivalence.strictEqual<string>()
)

console.log(eq(Result.succeed(1), Result.succeed(1)))
// Output: true

console.log(eq(Result.succeed(1), Result.fail("x")))
// Output: false
instances
Source effect/Result.ts:7229 lines
export const makeEquivalence = <A, E>(
  success: Equivalence.Equivalence<A>,
  failure: Equivalence.Equivalence<E>
): Equivalence.Equivalence<Result<A, E>> =>
  Equivalence.make((x, y) =>
    isFailure(x) ?
      isFailure(y) && failure(x.failure, y.failure) :
      isSuccess(y) && success(x.success, y.success)
  )
Referenced by 1 symbols