summaryrefslogtreecommitdiff
path: root/src/lang/util/number.ts
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2025-11-03 23:40:02 -0800
committerKai Stevenson <kai@kaistevenson.com>2025-11-03 23:40:02 -0800
commit56040f3ff85e77311f0c864a89afd63fcf1bdb50 (patch)
tree2eb0166756e76b0483692e79830329c92e7fdcf3 /src/lang/util/number.ts
parenta11e6780fbb8bd4143dfec44e2ce147b795772d8 (diff)
add js-lang, refactor some ts-lang stuff
Diffstat (limited to 'src/lang/util/number.ts')
-rw-r--r--src/lang/util/number.ts37
1 files changed, 0 insertions, 37 deletions
diff --git a/src/lang/util/number.ts b/src/lang/util/number.ts
deleted file mode 100644
index 6e4e360..0000000
--- a/src/lang/util/number.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-export type NumberToArray<
- Number extends number,
- Carry extends readonly any[] = []
-> = Number extends Carry["length"]
- ? Carry
- : NumberToArray<Number, [...Carry, any]>;
-
-export type NumbersToArray<
- Numbers extends readonly number[],
- Carry extends readonly any[] = []
-> = Numbers extends [
- infer Head extends number,
- ...infer Tail extends readonly number[]
-]
- ? NumbersToArray<Tail, [...Carry, ...NumberToArray<Head>]>
- : Carry;
-
-export type AddNumbers<Numbers extends readonly number[]> =
- NumbersToArray<Numbers> extends infer T extends readonly any[]
- ? T["length"]
- : never;
-
-export type MultiplyInner<
- N extends number,
- MS extends readonly any[],
- Carry extends number = 0
-> = MS extends [infer Head extends number, ...infer Tail extends readonly any[]]
- ? MultiplyInner<N, Tail, AddNumbers<[Carry, N]>>
- : Carry;
-
-export type Multiply<M extends number, N extends number> = MultiplyInner<
- M,
- NumberToArray<N>
->;
-
-export type ExtractNumber<T extends any> =
- T extends `${infer Inner extends number}` ? Inner : never;