mirror of
https://github.com/coder/code-server.git
synced 2026-05-25 05:37:26 +02:00
37 lines
916 B
TypeScript
37 lines
916 B
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
export function clamp(value: number, min: number, max: number): number {
|
|
return Math.min(Math.max(value, min), max);
|
|
}
|
|
|
|
export function rot(index: number, modulo: number): number {
|
|
return (modulo + (index % modulo)) % modulo;
|
|
}
|
|
|
|
export class Counter {
|
|
private _next = 0;
|
|
|
|
getNext(): number {
|
|
return this._next++;
|
|
}
|
|
}
|
|
|
|
export class MovingAverage {
|
|
|
|
private _n = 1;
|
|
private _val = 0;
|
|
|
|
update(value: number): this {
|
|
this._val = this._val + (value - this._val) / this._n;
|
|
this._n += 1;
|
|
return this;
|
|
}
|
|
|
|
get value(): number {
|
|
return this._val;
|
|
}
|
|
}
|