21 lines
559 B
TypeScript
21 lines
559 B
TypeScript
/**
|
|
* Contains two parts: the first part is the seconds, the second part is the nanoseconds.
|
|
*
|
|
*/
|
|
export type ClockTime = [number, number];
|
|
|
|
export interface Clock {
|
|
preciseNow(): ClockTime;
|
|
reset(): void;
|
|
}
|
|
|
|
export function calculateDurationInMs(start: ClockTime, end: ClockTime): number {
|
|
const [startSeconds, startNanoseconds] = start;
|
|
const [endSeconds, endNanoseconds] = end;
|
|
|
|
const seconds = endSeconds - startSeconds;
|
|
const nanoseconds = endNanoseconds - startNanoseconds;
|
|
|
|
return Math.floor(seconds * 1000 + nanoseconds / 1000000);
|
|
}
|