/** * types for defining a range of positive integers * track the proposal for a built-in at https://github.com/microsoft/TypeScript/issues/43505 */ import { Append, Length, List } from "../list"; import { Exclude } from "../set"; import { Unreachable } from "../type"; /** * generator. * builds up an array containing elements of the numbers 0 up to but excluding N */ type _RangeTuple = Length extends N ? Acc : _RangeTuple>>; /** * enumeration of integers from `0` to `N`, exclusive. i.e. the range [0, N) * * @since 0.0.2 */ export type Enumerate = _RangeTuple extends (infer L extends List) ? L[number] : Unreachable; /** * range of integers from `Start` to `End - 1`, inclusive. i.e. the range [Start, End) * * @since 0.0.2 */ export type Range = Exclude, Enumerate>; export {}; //# sourceMappingURL=range.d.ts.map