typescript-generic-datastructures
Version:
18 lines (17 loc) • 728 B
TypeScript
export declare type CompareFunction<T> = (a: T, b: T) => 0 | 1 | -1;
export declare type ComparatorKeyExtractor<T> = (a: T) => any;
export interface ComparatorOptions<T> {
compareFunction?: CompareFunction<T>;
keyExtractor?: ComparatorKeyExtractor<T>;
}
export declare class Comparator<T> {
compare: CompareFunction<T>;
constructor({ compareFunction, keyExtractor }: ComparatorOptions<T>);
static defaultCompareFunction<T>(keyExtractor: ComparatorKeyExtractor<T>): (a: T, b: T) => 0 | 1 | -1;
equal(a: T, b: T): boolean;
lessThan(a: T, b: T): boolean;
greaterThan(a: T, b: T): boolean;
lessThanOrEqual(a: T, b: T): boolean;
greaterThanOrEqual(a: T, b: T): boolean;
reverse(): void;
}