1
0
Files
sequence-js/src/equality-comparer/types.ts
Herve BECHER b6a29cdec2 sync
2025-09-10 10:29:31 +02:00

16 lines
740 B
TypeScript

import { Converter, MaybeAsyncFunction } from "../types.js";
export interface EqualityComparer<T> {
equals(a: T, b: T): boolean;
equalityComparison(): EqualityComparison<T>;
opposite(): EqualityComparer<T>;
then(equalityComparer: EqualityComparer<T>): EqualityComparer<T>;
thenEquals(equalityComparison: EqualityComparison<T>): EqualityComparer<T>;
thenEqualsUsing<U>(projection: Converter<T, U>, equalityComparison?: EqualityComparisonOrComparer<U>): EqualityComparer<T>;
}
export type EqualityComparison<T> = (first: T, second: T) => boolean;
export type EqualityComparisonOrComparer<T> = EqualityComparison<T> | EqualityComparer<T>;
export type MaybeAsyncEqualityComparison<T> = MaybeAsyncFunction<EqualityComparison<T>>;