rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
39 lines (37 loc) • 1.14 kB
TypeScript
import type { SDigit } from "../..";
import type { EQ, GT, LT } from "../../../typeclass/Ord";
/**
* Compare two {@link SDigit}s.
*
* Sig: `(n: SDigit, m: SDigit) => Ordering`
* @private
*/
export type _CompareSDigit<N extends SDigit, M extends SDigit> =
N extends M ? EQ
: N extends "0" ? LT
: N extends "1" ?
// prettier-ignore
M extends "0" ? GT : LT
: N extends "2" ?
// prettier-ignore
M extends "0" | "1" ? GT : LT
: N extends "3" ?
// prettier-ignore
M extends "0" | "1" | "2" ? GT : LT
: N extends "4" ?
// prettier-ignore
M extends "0" | "1" | "2" | "3" ? GT : LT
: N extends "5" ?
// prettier-ignore
M extends "0" | "1" | "2" | "3" | "4" ? GT : LT
: N extends "6" ?
// prettier-ignore
M extends "0" | "1" | "2" | "3" | "4" | "5" ? GT : LT
: N extends "7" ?
// prettier-ignore
M extends "0" | "1" | "2" | "3" | "4" | "5" | "6" ? GT : LT
: N extends "8" ?
// prettier-ignore
M extends "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" ? GT : LT
: // prettier-ignore
M extends "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" ? GT : LT;