ts-data-forge 11.0.0 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/number/branded-types/finite-number.d.mts +47 -61
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +37 -41
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +40 -46
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +29 -31
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +65 -58
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +49 -45
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +65 -58
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +49 -45
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.mjs +52 -46
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +60 -48
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.mjs +40 -36
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.mjs +40 -41
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +47 -43
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +47 -44
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +41 -146
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.mjs +27 -107
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +51 -38
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +31 -27
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +36 -39
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +36 -40
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +58 -50
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +46 -68
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +34 -49
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +61 -57
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +44 -43
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +61 -57
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +44 -43
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +45 -43
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +61 -57
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +44 -43
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +61 -58
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +44 -44
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +43 -62
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +35 -42
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +62 -57
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +46 -44
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +63 -50
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +42 -39
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +60 -58
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +44 -43
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +59 -55
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +42 -42
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +56 -65
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +44 -43
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +60 -58
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +44 -43
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/package.json +2 -1
- package/src/number/branded-types/finite-number.mts +47 -61
- package/src/number/branded-types/int.mts +40 -46
- package/src/number/branded-types/int16.mts +65 -58
- package/src/number/branded-types/int32.mts +65 -58
- package/src/number/branded-types/negative-finite-number.mts +68 -68
- package/src/number/branded-types/negative-int.mts +60 -57
- package/src/number/branded-types/negative-safe-int.mts +57 -65
- package/src/number/branded-types/non-negative-finite-number.mts +74 -64
- package/src/number/branded-types/non-negative-int16.mts +64 -57
- package/src/number/branded-types/non-negative-int32.mts +64 -58
- package/src/number/branded-types/non-positive-finite-number.mts +64 -54
- package/src/number/branded-types/non-positive-int.mts +41 -146
- package/src/number/branded-types/non-positive-safe-int.mts +54 -53
- package/src/number/branded-types/non-zero-finite-number.mts +62 -51
- package/src/number/branded-types/non-zero-int.mts +51 -38
- package/src/number/branded-types/non-zero-int16.mts +52 -53
- package/src/number/branded-types/non-zero-int32.mts +52 -54
- package/src/number/branded-types/non-zero-safe-int.mts +53 -54
- package/src/number/branded-types/non-zero-uint16.mts +52 -53
- package/src/number/branded-types/non-zero-uint32.mts +52 -53
- package/src/number/branded-types/positive-finite-number.mts +74 -63
- package/src/number/branded-types/positive-int.mts +46 -68
- package/src/number/branded-types/positive-int16.mts +61 -57
- package/src/number/branded-types/positive-int32.mts +61 -57
- package/src/number/branded-types/positive-safe-int.mts +62 -57
- package/src/number/branded-types/positive-uint16.mts +61 -57
- package/src/number/branded-types/positive-uint32.mts +61 -58
- package/src/number/branded-types/safe-int.mts +43 -62
- package/src/number/branded-types/safe-uint.mts +62 -57
- package/src/number/branded-types/uint.mts +63 -50
- package/src/number/branded-types/uint16.mts +60 -58
- package/src/number/branded-types/uint32.mts +59 -55
- package/src/number/enum/int8.mts +56 -65
- package/src/number/enum/uint8.mts +60 -58
|
@@ -25,93 +25,93 @@ const isPositiveUint32 = is;
|
|
|
25
25
|
const asPositiveUint32 = castType;
|
|
26
26
|
const PositiveUint32 = {
|
|
27
27
|
/**
|
|
28
|
-
* Type guard
|
|
28
|
+
* Type guard that checks if a value is a positive integer in [1, 2^32).
|
|
29
29
|
*
|
|
30
|
-
* @param value The value to check
|
|
31
|
-
* @returns `true` if the value is a
|
|
32
|
-
*
|
|
30
|
+
* @param value - The value to check
|
|
31
|
+
* @returns `true` if the value is a positive integer in [1, 2^32), `false` otherwise
|
|
32
|
+
* @see {@link isPositiveUint32} for usage examples
|
|
33
33
|
*/
|
|
34
34
|
is,
|
|
35
35
|
/**
|
|
36
|
-
* The
|
|
37
|
-
*
|
|
38
|
-
* @readonly
|
|
36
|
+
* The smallest value representable as `PositiveUint32`.
|
|
39
37
|
*/
|
|
40
38
|
MIN_VALUE,
|
|
41
39
|
/**
|
|
42
|
-
* The
|
|
43
|
-
*
|
|
44
|
-
* @readonly
|
|
40
|
+
* The largest value representable as `PositiveUint32`.
|
|
45
41
|
*/
|
|
46
42
|
MAX_VALUE,
|
|
47
43
|
/**
|
|
48
|
-
* Returns the
|
|
44
|
+
* Returns the smallest of the given positive integers.
|
|
49
45
|
*
|
|
50
|
-
* @param
|
|
51
|
-
* @
|
|
52
|
-
* @returns The minimum value as a PositiveUint32.
|
|
46
|
+
* @param values - The positive integers to compare (at least one required)
|
|
47
|
+
* @returns The smallest value as a `PositiveUint32`
|
|
53
48
|
*/
|
|
54
49
|
min: min_,
|
|
55
50
|
/**
|
|
56
|
-
* Returns the
|
|
51
|
+
* Returns the largest of the given positive integers.
|
|
57
52
|
*
|
|
58
|
-
* @param
|
|
59
|
-
* @
|
|
60
|
-
* @returns The maximum value as a PositiveUint32.
|
|
53
|
+
* @param values - The positive integers to compare (at least one required)
|
|
54
|
+
* @returns The largest value as a `PositiveUint32`
|
|
61
55
|
*/
|
|
62
56
|
max: max_,
|
|
63
57
|
/**
|
|
64
|
-
* Clamps a number
|
|
58
|
+
* Clamps a `number` into the `PositiveUint32` range, rounding to the nearest
|
|
59
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
65
60
|
*
|
|
66
|
-
* @param value The
|
|
67
|
-
* @returns The
|
|
61
|
+
* @param value - The value to clamp
|
|
62
|
+
* @returns The clamped value as a `PositiveUint32`
|
|
68
63
|
*/
|
|
69
64
|
clamp,
|
|
70
65
|
/**
|
|
71
|
-
* Generates a random PositiveUint32
|
|
66
|
+
* Generates a random `PositiveUint32` within the given range.
|
|
67
|
+
*
|
|
68
|
+
* The range is inclusive on both ends.
|
|
72
69
|
*
|
|
73
|
-
* @
|
|
70
|
+
* @param min - The minimum value (inclusive)
|
|
71
|
+
* @param max - The maximum value (inclusive)
|
|
72
|
+
* @returns A random `PositiveUint32` in `[min, max]`
|
|
74
73
|
*/
|
|
75
74
|
random,
|
|
76
75
|
/**
|
|
77
|
-
* Raises a
|
|
76
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `PositiveUint32`
|
|
77
|
+
* (floored to an integer).
|
|
78
78
|
*
|
|
79
|
-
* @param a The base
|
|
80
|
-
* @param b The exponent
|
|
81
|
-
* @returns `a ** b`
|
|
79
|
+
* @param a - The base positive integer
|
|
80
|
+
* @param b - The exponent positive integer
|
|
81
|
+
* @returns `a ** b` as a `PositiveUint32`
|
|
82
82
|
*/
|
|
83
83
|
pow,
|
|
84
84
|
/**
|
|
85
|
-
* Adds two PositiveUint32
|
|
85
|
+
* Adds two positive integers, returning `a + b` as a `PositiveUint32`.
|
|
86
86
|
*
|
|
87
|
-
* @param a The first
|
|
88
|
-
* @param b The second
|
|
89
|
-
* @returns `a
|
|
87
|
+
* @param a - The first positive integer
|
|
88
|
+
* @param b - The second positive integer
|
|
89
|
+
* @returns The sum of `a` and `b` as a `PositiveUint32`
|
|
90
90
|
*/
|
|
91
91
|
add,
|
|
92
92
|
/**
|
|
93
|
-
* Subtracts
|
|
93
|
+
* Subtracts two positive integers, returning `a - b` as a `PositiveUint32`.
|
|
94
94
|
*
|
|
95
|
-
* @param a The
|
|
96
|
-
* @param b The
|
|
97
|
-
* @returns `a
|
|
98
|
-
* 1).
|
|
95
|
+
* @param a - The first positive integer
|
|
96
|
+
* @param b - The second positive integer
|
|
97
|
+
* @returns The difference of `a` and `b` as a `PositiveUint32`
|
|
99
98
|
*/
|
|
100
99
|
sub,
|
|
101
100
|
/**
|
|
102
|
-
* Multiplies two PositiveUint32
|
|
101
|
+
* Multiplies two positive integers, returning `a * b` as a `PositiveUint32`.
|
|
103
102
|
*
|
|
104
|
-
* @param a The first
|
|
105
|
-
* @param b The second
|
|
106
|
-
* @returns `a
|
|
103
|
+
* @param a - The first positive integer
|
|
104
|
+
* @param b - The second positive integer
|
|
105
|
+
* @returns The product of `a` and `b` as a `PositiveUint32`
|
|
107
106
|
*/
|
|
108
107
|
mul,
|
|
109
108
|
/**
|
|
110
|
-
* Divides
|
|
109
|
+
* Divides two positive integers using floor division (`⌊a / b⌋`): the result
|
|
110
|
+
* is `a / b` rounded toward negative infinity, as a `PositiveUint32`.
|
|
111
111
|
*
|
|
112
|
-
* @param a The dividend
|
|
113
|
-
* @param b The divisor
|
|
114
|
-
* @returns
|
|
112
|
+
* @param a - The dividend
|
|
113
|
+
* @param b - The divisor (must be non-zero)
|
|
114
|
+
* @returns The floored quotient as a `PositiveUint32`
|
|
115
115
|
*/
|
|
116
116
|
div
|
|
117
117
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positive-uint32.mjs","sources":["../../../src/number/branded-types/positive-uint32.mts"],"sourcesContent":["import { type PositiveUint32 as TtfImported_PositiveUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveUint32 = TtfImported_PositiveUint32;\n\ntype ElementType = PositiveUint32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^32)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 32 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"positive-uint32.mjs","sources":["../../../src/number/branded-types/positive-uint32.mts"],"sourcesContent":["import { type PositiveUint32 as TtfImported_PositiveUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveUint32 = TtfImported_PositiveUint32;\n\ntype ElementType = PositiveUint32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^32)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 32 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer in [1, 2^32).\n *\n * Returns `true` for a positive integer in [1, 2^32) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^32), `false` otherwise\n */\nexport const isPositiveUint32 = is;\n\n/**\n * Casts a `number` to the `PositiveUint32` branded type.\n *\n * Validates that the value is a positive integer in [1, 2^32) and returns it\n * with the `PositiveUint32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveUint32`\n * @throws {TypeError} If the value is not a positive integer in [1, 2^32)\n */\nexport const asPositiveUint32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveUint32` branded\n * type.\n *\n * The `PositiveUint32` type represents a positive integer in [1, 2^32).\n * Division (`div`) uses floor division.\n */\nexport const PositiveUint32 = {\n /**\n * Type guard that checks if a value is a positive integer in [1, 2^32).\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^32), `false` otherwise\n * @see {@link isPositiveUint32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveUint32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveUint32`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a `PositiveUint32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a `PositiveUint32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `PositiveUint32` range, rounding to the nearest\n * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `PositiveUint32`\n */\n clamp,\n\n /**\n * Generates a random `PositiveUint32` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `PositiveUint32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveUint32`\n * (floored to an integer).\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a `PositiveUint32`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveUint32`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The sum of `a` and `b` as a `PositiveUint32`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveUint32`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The difference of `a` and `b` as a `PositiveUint32`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveUint32`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The product of `a` and `b` as a `PositiveUint32`\n */\n mul,\n\n /**\n * Divides two positive integers using floor division (`⌊a / b⌋`): the result\n * is `a / b` rounded toward negative infinity, as a `PositiveUint32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveUint32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveUint32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveUint32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,gBAAA,GAAmB;AAYzB,MAAM,gBAAA,GAAmB;AASzB,MAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}
|
|
@@ -3,8 +3,7 @@ export type SafeInt = TtfImported_SafeInt;
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard that checks if a value is a safe integer.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* without precision loss. The range is [±(2^53 - 1)].
|
|
6
|
+
* Returns `true` for a safe integer — a value with no fractional component.
|
|
8
7
|
*
|
|
9
8
|
* @example
|
|
10
9
|
*
|
|
@@ -21,11 +20,10 @@ export type SafeInt = TtfImported_SafeInt;
|
|
|
21
20
|
*/
|
|
22
21
|
export declare const isSafeInt: (a: number) => a is TtfImported_SafeInt;
|
|
23
22
|
/**
|
|
24
|
-
* Casts a number to
|
|
23
|
+
* Casts a `number` to the `SafeInt` branded type.
|
|
25
24
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* operations that require precise integer arithmetic.
|
|
25
|
+
* Validates that the value is a safe integer and returns it with the `SafeInt`
|
|
26
|
+
* brand. Throws a `TypeError` otherwise.
|
|
29
27
|
*
|
|
30
28
|
* @example
|
|
31
29
|
*
|
|
@@ -38,7 +36,7 @@ export declare const isSafeInt: (a: number) => a is TtfImported_SafeInt;
|
|
|
38
36
|
* ```
|
|
39
37
|
*
|
|
40
38
|
* @param value - The value to cast
|
|
41
|
-
* @returns The value as a SafeInt
|
|
39
|
+
* @returns The value as a `SafeInt`
|
|
42
40
|
* @throws {TypeError} If the value is not a safe integer
|
|
43
41
|
*/
|
|
44
42
|
export declare const asSafeInt: <N extends number>(x: N) => number & {
|
|
@@ -50,20 +48,10 @@ export declare const asSafeInt: <N extends number>(x: N) => number & {
|
|
|
50
48
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
51
49
|
}> & N;
|
|
52
50
|
/**
|
|
53
|
-
* Namespace providing type-safe operations for SafeInt branded
|
|
51
|
+
* Namespace providing type-safe operations for the `SafeInt` branded type.
|
|
54
52
|
*
|
|
55
|
-
* SafeInt represents
|
|
56
|
-
*
|
|
57
|
-
* approximately ±9 quadrillion.
|
|
58
|
-
*
|
|
59
|
-
* All operations automatically clamp results to stay within the safe range,
|
|
60
|
-
* preventing precision loss that occurs with larger integers. This makes
|
|
61
|
-
* SafeInt ideal for:
|
|
62
|
-
*
|
|
63
|
-
* - Financial calculations requiring exact cents
|
|
64
|
-
* - Database IDs and counters
|
|
65
|
-
* - Array indices and sizes
|
|
66
|
-
* - Any integer arithmetic requiring precision guarantees
|
|
53
|
+
* The `SafeInt` type represents a safe integer. Division (`div`) uses floor
|
|
54
|
+
* division.
|
|
67
55
|
*/
|
|
68
56
|
export declare const SafeInt: {
|
|
69
57
|
/**
|
|
@@ -85,22 +73,17 @@ export declare const SafeInt: {
|
|
|
85
73
|
*/
|
|
86
74
|
readonly is: (a: number) => a is TtfImported_SafeInt;
|
|
87
75
|
/**
|
|
88
|
-
* The
|
|
89
|
-
*
|
|
90
|
-
* @readonly
|
|
76
|
+
* The smallest value representable as `SafeInt`.
|
|
91
77
|
*/
|
|
92
78
|
readonly MIN_VALUE: TtfImported_SafeInt;
|
|
93
79
|
/**
|
|
94
|
-
* The
|
|
95
|
-
*
|
|
96
|
-
* @readonly
|
|
80
|
+
* The largest value representable as `SafeInt`.
|
|
97
81
|
*/
|
|
98
82
|
readonly MAX_VALUE: SafeUint;
|
|
99
83
|
/**
|
|
100
84
|
* Returns the absolute value of a safe integer.
|
|
101
85
|
*
|
|
102
|
-
*
|
|
103
|
-
* function clamps the result to maintain the safe integer guarantee.
|
|
86
|
+
* The result is non-negative and keeps the `SafeInt` brand.
|
|
104
87
|
*
|
|
105
88
|
* @example
|
|
106
89
|
*
|
|
@@ -115,11 +98,11 @@ export declare const SafeInt: {
|
|
|
115
98
|
* ```
|
|
116
99
|
*
|
|
117
100
|
* @param a - The safe integer value
|
|
118
|
-
* @returns The absolute value as a SafeInt
|
|
101
|
+
* @returns The absolute value as a non-negative `SafeInt`
|
|
119
102
|
*/
|
|
120
103
|
readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => import("ts-type-forge").IntersectBrand<TtfImported_SafeInt, import("ts-type-forge").NonNegativeNumber>;
|
|
121
104
|
/**
|
|
122
|
-
* Returns the
|
|
105
|
+
* Returns the smallest of the given safe integers.
|
|
123
106
|
*
|
|
124
107
|
* @example
|
|
125
108
|
*
|
|
@@ -130,11 +113,11 @@ export declare const SafeInt: {
|
|
|
130
113
|
* ```
|
|
131
114
|
*
|
|
132
115
|
* @param values - The safe integers to compare (at least one required)
|
|
133
|
-
* @returns The smallest value as a SafeInt
|
|
116
|
+
* @returns The smallest value as a `SafeInt`
|
|
134
117
|
*/
|
|
135
118
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>[]) => TtfImported_SafeInt;
|
|
136
119
|
/**
|
|
137
|
-
* Returns the
|
|
120
|
+
* Returns the largest of the given safe integers.
|
|
138
121
|
*
|
|
139
122
|
* @example
|
|
140
123
|
*
|
|
@@ -145,11 +128,12 @@ export declare const SafeInt: {
|
|
|
145
128
|
* ```
|
|
146
129
|
*
|
|
147
130
|
* @param values - The safe integers to compare (at least one required)
|
|
148
|
-
* @returns The largest value as a SafeInt
|
|
131
|
+
* @returns The largest value as a `SafeInt`
|
|
149
132
|
*/
|
|
150
133
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>[]) => TtfImported_SafeInt;
|
|
151
134
|
/**
|
|
152
|
-
* Clamps a number to the
|
|
135
|
+
* Clamps a `number` into the `SafeInt` range, rounding to the nearest integer
|
|
136
|
+
* and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
153
137
|
*
|
|
154
138
|
* @example
|
|
155
139
|
*
|
|
@@ -167,16 +151,14 @@ export declare const SafeInt: {
|
|
|
167
151
|
* assert.isTrue(belowRange === Number.MIN_SAFE_INTEGER);
|
|
168
152
|
* ```
|
|
169
153
|
*
|
|
170
|
-
* @param value The
|
|
171
|
-
* @returns The
|
|
172
|
-
* SafeInt.
|
|
154
|
+
* @param value - The value to clamp
|
|
155
|
+
* @returns The clamped value as a `SafeInt`
|
|
173
156
|
*/
|
|
174
157
|
readonly clamp: (x: number) => TtfImported_SafeInt;
|
|
175
158
|
/**
|
|
176
|
-
* Generates a random
|
|
159
|
+
* Generates a random `SafeInt` within the given range.
|
|
177
160
|
*
|
|
178
|
-
* The range is inclusive on both ends.
|
|
179
|
-
* swapped.
|
|
161
|
+
* The range is inclusive on both ends.
|
|
180
162
|
*
|
|
181
163
|
* @example
|
|
182
164
|
*
|
|
@@ -194,11 +176,12 @@ export declare const SafeInt: {
|
|
|
194
176
|
*
|
|
195
177
|
* @param min - The minimum value (inclusive)
|
|
196
178
|
* @param max - The maximum value (inclusive)
|
|
197
|
-
* @returns A random SafeInt in
|
|
179
|
+
* @returns A random `SafeInt` in `[min, max]`
|
|
198
180
|
*/
|
|
199
181
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt> | undefined) => TtfImported_SafeInt;
|
|
200
182
|
/**
|
|
201
|
-
* Raises a
|
|
183
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `SafeInt` (floored to
|
|
184
|
+
* an integer).
|
|
202
185
|
*
|
|
203
186
|
* @example
|
|
204
187
|
*
|
|
@@ -214,13 +197,13 @@ export declare const SafeInt: {
|
|
|
214
197
|
* assert.isTrue(SafeInt.is(power));
|
|
215
198
|
* ```
|
|
216
199
|
*
|
|
217
|
-
* @param a The base
|
|
218
|
-
* @param b The exponent
|
|
219
|
-
* @returns `a ** b`
|
|
200
|
+
* @param a - The base safe integer
|
|
201
|
+
* @param b - The exponent safe integer
|
|
202
|
+
* @returns `a ** b` as a `SafeInt`
|
|
220
203
|
*/
|
|
221
204
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
|
|
222
205
|
/**
|
|
223
|
-
* Adds two SafeInt
|
|
206
|
+
* Adds two safe integers, returning `a + b` as a `SafeInt`.
|
|
224
207
|
*
|
|
225
208
|
* @example
|
|
226
209
|
*
|
|
@@ -232,13 +215,13 @@ export declare const SafeInt: {
|
|
|
232
215
|
* assert.isTrue(SafeInt.is(sum));
|
|
233
216
|
* ```
|
|
234
217
|
*
|
|
235
|
-
* @param a The first
|
|
236
|
-
* @param b The second
|
|
237
|
-
* @returns `a
|
|
218
|
+
* @param a - The first safe integer
|
|
219
|
+
* @param b - The second safe integer
|
|
220
|
+
* @returns The sum of `a` and `b` as a `SafeInt`
|
|
238
221
|
*/
|
|
239
222
|
readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
|
|
240
223
|
/**
|
|
241
|
-
* Subtracts
|
|
224
|
+
* Subtracts two safe integers, returning `a - b` as a `SafeInt`.
|
|
242
225
|
*
|
|
243
226
|
* @example
|
|
244
227
|
*
|
|
@@ -250,13 +233,13 @@ export declare const SafeInt: {
|
|
|
250
233
|
* assert.isTrue(SafeInt.is(difference));
|
|
251
234
|
* ```
|
|
252
235
|
*
|
|
253
|
-
* @param a The
|
|
254
|
-
* @param b The
|
|
255
|
-
* @returns `a
|
|
236
|
+
* @param a - The first safe integer
|
|
237
|
+
* @param b - The second safe integer
|
|
238
|
+
* @returns The difference of `a` and `b` as a `SafeInt`
|
|
256
239
|
*/
|
|
257
240
|
readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
|
|
258
241
|
/**
|
|
259
|
-
* Multiplies two SafeInt
|
|
242
|
+
* Multiplies two safe integers, returning `a * b` as a `SafeInt`.
|
|
260
243
|
*
|
|
261
244
|
* @example
|
|
262
245
|
*
|
|
@@ -268,16 +251,14 @@ export declare const SafeInt: {
|
|
|
268
251
|
* assert.isTrue(SafeInt.is(product));
|
|
269
252
|
* ```
|
|
270
253
|
*
|
|
271
|
-
* @param a The first
|
|
272
|
-
* @param b The second
|
|
273
|
-
* @returns `a
|
|
254
|
+
* @param a - The first safe integer
|
|
255
|
+
* @param b - The second safe integer
|
|
256
|
+
* @returns The product of `a` and `b` as a `SafeInt`
|
|
274
257
|
*/
|
|
275
258
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
|
|
276
259
|
/**
|
|
277
|
-
* Divides
|
|
278
|
-
*
|
|
279
|
-
* Performs mathematical floor division: `⌊a / b⌋`. The divisor must be
|
|
280
|
-
* non-zero (enforced by type constraints).
|
|
260
|
+
* Divides two safe integers using floor division (`⌊a / b⌋`): the result is
|
|
261
|
+
* `a / b` rounded toward negative infinity, as a `SafeInt`.
|
|
281
262
|
*
|
|
282
263
|
* @example
|
|
283
264
|
*
|
|
@@ -291,7 +272,7 @@ export declare const SafeInt: {
|
|
|
291
272
|
*
|
|
292
273
|
* @param a - The dividend
|
|
293
274
|
* @param b - The divisor (must be non-zero)
|
|
294
|
-
* @returns The
|
|
275
|
+
* @returns The floored quotient as a `SafeInt`
|
|
295
276
|
*/
|
|
296
277
|
readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: -40 | -39 | -38 | -37 | -36 | -35 | -34 | -33 | -32 | -31 | -30 | -29 | -28 | -27 | -26 | -25 | -24 | -23 | -22 | -21 | -20 | -19 | -18 | -17 | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
|
|
297
278
|
readonly "!=0": true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAkC1C
|
|
1
|
+
{"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAkC1C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,yCAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS;;;;;;;MAAW,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;CAEK,CAAC"}
|
|
@@ -46,22 +46,17 @@ const SafeInt = {
|
|
|
46
46
|
*/
|
|
47
47
|
is,
|
|
48
48
|
/**
|
|
49
|
-
* The
|
|
50
|
-
*
|
|
51
|
-
* @readonly
|
|
49
|
+
* The smallest value representable as `SafeInt`.
|
|
52
50
|
*/
|
|
53
51
|
MIN_VALUE,
|
|
54
52
|
/**
|
|
55
|
-
* The
|
|
56
|
-
*
|
|
57
|
-
* @readonly
|
|
53
|
+
* The largest value representable as `SafeInt`.
|
|
58
54
|
*/
|
|
59
55
|
MAX_VALUE,
|
|
60
56
|
/**
|
|
61
57
|
* Returns the absolute value of a safe integer.
|
|
62
58
|
*
|
|
63
|
-
*
|
|
64
|
-
* function clamps the result to maintain the safe integer guarantee.
|
|
59
|
+
* The result is non-negative and keeps the `SafeInt` brand.
|
|
65
60
|
*
|
|
66
61
|
* @example
|
|
67
62
|
*
|
|
@@ -76,11 +71,11 @@ const SafeInt = {
|
|
|
76
71
|
* ```
|
|
77
72
|
*
|
|
78
73
|
* @param a - The safe integer value
|
|
79
|
-
* @returns The absolute value as a SafeInt
|
|
74
|
+
* @returns The absolute value as a non-negative `SafeInt`
|
|
80
75
|
*/
|
|
81
76
|
abs,
|
|
82
77
|
/**
|
|
83
|
-
* Returns the
|
|
78
|
+
* Returns the smallest of the given safe integers.
|
|
84
79
|
*
|
|
85
80
|
* @example
|
|
86
81
|
*
|
|
@@ -91,11 +86,11 @@ const SafeInt = {
|
|
|
91
86
|
* ```
|
|
92
87
|
*
|
|
93
88
|
* @param values - The safe integers to compare (at least one required)
|
|
94
|
-
* @returns The smallest value as a SafeInt
|
|
89
|
+
* @returns The smallest value as a `SafeInt`
|
|
95
90
|
*/
|
|
96
91
|
min: min_,
|
|
97
92
|
/**
|
|
98
|
-
* Returns the
|
|
93
|
+
* Returns the largest of the given safe integers.
|
|
99
94
|
*
|
|
100
95
|
* @example
|
|
101
96
|
*
|
|
@@ -106,11 +101,12 @@ const SafeInt = {
|
|
|
106
101
|
* ```
|
|
107
102
|
*
|
|
108
103
|
* @param values - The safe integers to compare (at least one required)
|
|
109
|
-
* @returns The largest value as a SafeInt
|
|
104
|
+
* @returns The largest value as a `SafeInt`
|
|
110
105
|
*/
|
|
111
106
|
max: max_,
|
|
112
107
|
/**
|
|
113
|
-
* Clamps a number to the
|
|
108
|
+
* Clamps a `number` into the `SafeInt` range, rounding to the nearest integer
|
|
109
|
+
* and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
114
110
|
*
|
|
115
111
|
* @example
|
|
116
112
|
*
|
|
@@ -128,16 +124,14 @@ const SafeInt = {
|
|
|
128
124
|
* assert.isTrue(belowRange === Number.MIN_SAFE_INTEGER);
|
|
129
125
|
* ```
|
|
130
126
|
*
|
|
131
|
-
* @param value The
|
|
132
|
-
* @returns The
|
|
133
|
-
* SafeInt.
|
|
127
|
+
* @param value - The value to clamp
|
|
128
|
+
* @returns The clamped value as a `SafeInt`
|
|
134
129
|
*/
|
|
135
130
|
clamp,
|
|
136
131
|
/**
|
|
137
|
-
* Generates a random
|
|
132
|
+
* Generates a random `SafeInt` within the given range.
|
|
138
133
|
*
|
|
139
|
-
* The range is inclusive on both ends.
|
|
140
|
-
* swapped.
|
|
134
|
+
* The range is inclusive on both ends.
|
|
141
135
|
*
|
|
142
136
|
* @example
|
|
143
137
|
*
|
|
@@ -155,11 +149,12 @@ const SafeInt = {
|
|
|
155
149
|
*
|
|
156
150
|
* @param min - The minimum value (inclusive)
|
|
157
151
|
* @param max - The maximum value (inclusive)
|
|
158
|
-
* @returns A random SafeInt in
|
|
152
|
+
* @returns A random `SafeInt` in `[min, max]`
|
|
159
153
|
*/
|
|
160
154
|
random,
|
|
161
155
|
/**
|
|
162
|
-
* Raises a
|
|
156
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `SafeInt` (floored to
|
|
157
|
+
* an integer).
|
|
163
158
|
*
|
|
164
159
|
* @example
|
|
165
160
|
*
|
|
@@ -175,13 +170,13 @@ const SafeInt = {
|
|
|
175
170
|
* assert.isTrue(SafeInt.is(power));
|
|
176
171
|
* ```
|
|
177
172
|
*
|
|
178
|
-
* @param a The base
|
|
179
|
-
* @param b The exponent
|
|
180
|
-
* @returns `a ** b`
|
|
173
|
+
* @param a - The base safe integer
|
|
174
|
+
* @param b - The exponent safe integer
|
|
175
|
+
* @returns `a ** b` as a `SafeInt`
|
|
181
176
|
*/
|
|
182
177
|
pow,
|
|
183
178
|
/**
|
|
184
|
-
* Adds two SafeInt
|
|
179
|
+
* Adds two safe integers, returning `a + b` as a `SafeInt`.
|
|
185
180
|
*
|
|
186
181
|
* @example
|
|
187
182
|
*
|
|
@@ -193,13 +188,13 @@ const SafeInt = {
|
|
|
193
188
|
* assert.isTrue(SafeInt.is(sum));
|
|
194
189
|
* ```
|
|
195
190
|
*
|
|
196
|
-
* @param a The first
|
|
197
|
-
* @param b The second
|
|
198
|
-
* @returns `a
|
|
191
|
+
* @param a - The first safe integer
|
|
192
|
+
* @param b - The second safe integer
|
|
193
|
+
* @returns The sum of `a` and `b` as a `SafeInt`
|
|
199
194
|
*/
|
|
200
195
|
add,
|
|
201
196
|
/**
|
|
202
|
-
* Subtracts
|
|
197
|
+
* Subtracts two safe integers, returning `a - b` as a `SafeInt`.
|
|
203
198
|
*
|
|
204
199
|
* @example
|
|
205
200
|
*
|
|
@@ -211,13 +206,13 @@ const SafeInt = {
|
|
|
211
206
|
* assert.isTrue(SafeInt.is(difference));
|
|
212
207
|
* ```
|
|
213
208
|
*
|
|
214
|
-
* @param a The
|
|
215
|
-
* @param b The
|
|
216
|
-
* @returns `a
|
|
209
|
+
* @param a - The first safe integer
|
|
210
|
+
* @param b - The second safe integer
|
|
211
|
+
* @returns The difference of `a` and `b` as a `SafeInt`
|
|
217
212
|
*/
|
|
218
213
|
sub,
|
|
219
214
|
/**
|
|
220
|
-
* Multiplies two SafeInt
|
|
215
|
+
* Multiplies two safe integers, returning `a * b` as a `SafeInt`.
|
|
221
216
|
*
|
|
222
217
|
* @example
|
|
223
218
|
*
|
|
@@ -229,16 +224,14 @@ const SafeInt = {
|
|
|
229
224
|
* assert.isTrue(SafeInt.is(product));
|
|
230
225
|
* ```
|
|
231
226
|
*
|
|
232
|
-
* @param a The first
|
|
233
|
-
* @param b The second
|
|
234
|
-
* @returns `a
|
|
227
|
+
* @param a - The first safe integer
|
|
228
|
+
* @param b - The second safe integer
|
|
229
|
+
* @returns The product of `a` and `b` as a `SafeInt`
|
|
235
230
|
*/
|
|
236
231
|
mul,
|
|
237
232
|
/**
|
|
238
|
-
* Divides
|
|
239
|
-
*
|
|
240
|
-
* Performs mathematical floor division: `⌊a / b⌋`. The divisor must be
|
|
241
|
-
* non-zero (enforced by type constraints).
|
|
233
|
+
* Divides two safe integers using floor division (`⌊a / b⌋`): the result is
|
|
234
|
+
* `a / b` rounded toward negative infinity, as a `SafeInt`.
|
|
242
235
|
*
|
|
243
236
|
* @example
|
|
244
237
|
*
|
|
@@ -252,7 +245,7 @@ const SafeInt = {
|
|
|
252
245
|
*
|
|
253
246
|
* @param a - The dividend
|
|
254
247
|
* @param b - The divisor (must be non-zero)
|
|
255
|
-
* @returns The
|
|
248
|
+
* @returns The floored quotient as a `SafeInt`
|
|
256
249
|
*/
|
|
257
250
|
div
|
|
258
251
|
};
|