closed-interval
Version:
Utilities for working with a range of items of any type
33 lines (32 loc) • 1.27 kB
TypeScript
import { Comparator } from './types';
declare class Range<T> {
private customComparator;
protected minimum: T;
protected maximum: T;
protected comparator: Comparator<T>;
protected constructor(fromInclusive: T, toInclusive: T, customComparator?: Comparator<T> | null);
/**
* @deprecated Use Range.of instead.
*/
static between<T>(fromInclusive: T, toInclusive: T, comparator?: Comparator<T> | null): Range<T>;
static of<T>(fromInclusive: T, toInclusive: T, comparator?: Comparator<T> | null): Range<T>;
static is<T>(element: T, comparator?: Comparator<T> | null): Range<T>;
contains(element: T): boolean;
containsRange(other: Range<T>): boolean;
elementCompareTo(element: T): -1 | 0 | 1;
fit(element: T): T;
getComparator(): Comparator<T>;
getMaximum(): T;
getMinimum(): T;
intersectionWith(other: Range<T>): Range<T>;
isAfter(element: T): boolean;
isAfterRange(otherRange: Range<T>): boolean;
isBefore(element: T): boolean;
isBeforeRange(otherRange: Range<T>): boolean;
isEndedBy(element: T): boolean;
isNaturalOrdering(): boolean;
isOverlappedBy(otherRange: Range<T>): boolean;
isStartedBy(element: T): boolean;
toString(): string;
}
export default Range;