Files
ontime/apps/client/src/common/components/fit-text/fitText.utils.ts
T
2024-09-23 16:56:15 +02:00

19 lines
433 B
TypeScript

/**
* @param low inclusive, must be true on predicate function
* @param high exclusive,
* @param predicate predicate function
*/
export const bsearch = (low: number, high: number, predicate: (mid: number) => boolean): number => {
while (low < high) {
const mid = Math.floor((low + high) / 2);
if (mid === low) break;
if (predicate(mid)) {
low = mid;
} else {
high = mid;
}
}
return low;
};