Files
pezkuwi-telemetry/packages/common/src/id.ts
T
maciejhirsz 8bec72be35 Styles
2018-07-05 18:29:19 +02:00

16 lines
311 B
TypeScript

import { Opaque } from './helpers';
/**
* Unique type-constrained Id number.
*/
export type Id<T> = Opaque<number, T>;
/**
* Higher order function producing new auto-incremented `Id`s.
*/
export function idGenerator<I extends Id<any>>(): () => I {
let current = 0;
return () => current++ as I;
}