Skip to main content Link Search Menu Expand Document (external link)

Ordering overview

Added in v1.0.0


Table of contents


combining

combine

Signature

export declare const combine: {
  (that: Ordering): (self: Ordering) => Ordering
  (self: Ordering, that: Ordering): Ordering
}

Added in v1.0.0

combineAll

Signature

export declare const combineAll: (collection: Iterable<Ordering>) => Ordering

Added in v1.0.0

combineMany

Signature

export declare const combineMany: {
  (collection: Iterable<Ordering>): (self: Ordering) => Ordering
  (self: Ordering, collection: Iterable<Ordering>): Ordering
}

Added in v1.0.0

model

Ordering (type alias)

Signature

export type Ordering = -1 | 0 | 1

Added in v1.0.0

pattern matching

match

Depending on the Ordering parameter given to it, returns a value produced by one of the 3 functions provided as parameters.

Signature

export 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
}

Example

import { match } from '@effect/data/Ordering'
import { constant } from '@effect/data/Function'

const toMessage = match({
  onLessThan: constant('less than'),
  onEqual: constant('equal'),
  onGreaterThan: constant('greater than'),
})

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

Added in v1.0.0

utils

reverse

Inverts the ordering of the input Ordering.

Signature

export declare const reverse: (o: Ordering) => Ordering

Example

import { reverse } from '@effect/data/Ordering'

assert.deepStrictEqual(reverse(1), -1)
assert.deepStrictEqual(reverse(-1), 1)
assert.deepStrictEqual(reverse(0), 0)

Added in v1.0.0