effect-io-ai

Package: effect
Module: Ordering

Ordering.match

Matches an Ordering value and returns the branch selected by that ordering.

When to use

Use to branch on the three possible comparison outcomes in one expression.

Example (Pattern matching on orderings)

import { Function, Ordering } from "effect"
import * as assert from "node:assert"

const toMessage = Ordering.match({
  onLessThan: Function.constant("less than"),
  onEqual: Function.constant("equal"),
  onGreaterThan: Function.constant("greater than")
})

assert.deepStrictEqual(toMessage(-1), "less than")
assert.deepStrictEqual(toMessage(0), "equal")
assert.deepStrictEqual(toMessage(1), "greater than")

Signature

declare const match: { <A, B, C = B>(options: { readonly onLessThan: LazyArg<A>; readonly onEqual: LazyArg<B>; readonly onGreaterThan: LazyArg<C>; }): (self: Ordering) => A | B | C; <A, B, C = B>(o: Ordering, options: { readonly onLessThan: LazyArg<A>; readonly onEqual: LazyArg<B>; readonly onGreaterThan: LazyArg<C>; }): A | B | C; }

Source

Since v2.0.0