Package: effect
Module: Ordering
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; }
Since v2.0.0