ts-data-forge 11.0.0 → 12.0.0

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.
Files changed (185) hide show
  1. package/README.md +2 -2
  2. package/dist/number/branded-types/finite-number.d.mts +47 -61
  3. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  4. package/dist/number/branded-types/finite-number.mjs +37 -41
  5. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  6. package/dist/number/branded-types/int.d.mts +40 -46
  7. package/dist/number/branded-types/int.d.mts.map +1 -1
  8. package/dist/number/branded-types/int.mjs +29 -31
  9. package/dist/number/branded-types/int.mjs.map +1 -1
  10. package/dist/number/branded-types/int16.d.mts +71 -59
  11. package/dist/number/branded-types/int16.d.mts.map +1 -1
  12. package/dist/number/branded-types/int16.mjs +56 -47
  13. package/dist/number/branded-types/int16.mjs.map +1 -1
  14. package/dist/number/branded-types/int32.d.mts +71 -59
  15. package/dist/number/branded-types/int32.d.mts.map +1 -1
  16. package/dist/number/branded-types/int32.mjs +56 -47
  17. package/dist/number/branded-types/int32.mjs.map +1 -1
  18. package/dist/number/branded-types/negative-finite-number.d.mts +76 -60
  19. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  20. package/dist/number/branded-types/negative-finite-number.mjs +62 -49
  21. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  22. package/dist/number/branded-types/negative-int.d.mts +66 -49
  23. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  24. package/dist/number/branded-types/negative-int.mjs +48 -39
  25. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  26. package/dist/number/branded-types/negative-safe-int.d.mts +64 -57
  27. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  28. package/dist/number/branded-types/negative-safe-int.mjs +49 -44
  29. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  30. package/dist/number/branded-types/non-negative-finite-number.d.mts +80 -65
  31. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  32. package/dist/number/branded-types/non-negative-finite-number.mjs +65 -53
  33. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  34. package/dist/number/branded-types/non-negative-int16.d.mts +71 -58
  35. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  36. package/dist/number/branded-types/non-negative-int16.mjs +55 -45
  37. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  38. package/dist/number/branded-types/non-negative-int32.d.mts +71 -59
  39. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  40. package/dist/number/branded-types/non-negative-int32.mjs +55 -46
  41. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  42. package/dist/number/branded-types/non-positive-finite-number.d.mts +70 -55
  43. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  44. package/dist/number/branded-types/non-positive-finite-number.mjs +55 -43
  45. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  46. package/dist/number/branded-types/non-positive-int.d.mts +46 -146
  47. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  48. package/dist/number/branded-types/non-positive-int.mjs +33 -108
  49. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  50. package/dist/number/branded-types/non-positive-safe-int.d.mts +62 -54
  51. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  52. package/dist/number/branded-types/non-positive-safe-int.mjs +46 -41
  53. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  54. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  55. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  56. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  57. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  58. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  59. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  60. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  61. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  62. package/dist/number/branded-types/non-zero-int16.d.mts +59 -54
  63. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  64. package/dist/number/branded-types/non-zero-int16.mjs +44 -41
  65. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  66. package/dist/number/branded-types/non-zero-int32.d.mts +59 -55
  67. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  68. package/dist/number/branded-types/non-zero-int32.mjs +44 -42
  69. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  70. package/dist/number/branded-types/non-zero-safe-int.d.mts +60 -55
  71. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  72. package/dist/number/branded-types/non-zero-safe-int.mjs +44 -42
  73. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  74. package/dist/number/branded-types/non-zero-uint16.d.mts +59 -54
  75. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  76. package/dist/number/branded-types/non-zero-uint16.mjs +43 -41
  77. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  78. package/dist/number/branded-types/non-zero-uint32.d.mts +59 -54
  79. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  80. package/dist/number/branded-types/non-zero-uint32.mjs +43 -41
  81. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  82. package/dist/number/branded-types/positive-finite-number.d.mts +82 -64
  83. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  84. package/dist/number/branded-types/positive-finite-number.mjs +67 -52
  85. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  86. package/dist/number/branded-types/positive-int.d.mts +53 -70
  87. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  88. package/dist/number/branded-types/positive-int.mjs +42 -52
  89. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  90. package/dist/number/branded-types/positive-int16.d.mts +68 -58
  91. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  92. package/dist/number/branded-types/positive-int16.mjs +52 -45
  93. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  94. package/dist/number/branded-types/positive-int32.d.mts +68 -58
  95. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  96. package/dist/number/branded-types/positive-int32.mjs +52 -45
  97. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  98. package/dist/number/branded-types/positive-safe-int.d.mts +72 -61
  99. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  100. package/dist/number/branded-types/positive-safe-int.mjs +56 -48
  101. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  102. package/dist/number/branded-types/positive-uint16.d.mts +68 -58
  103. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  104. package/dist/number/branded-types/positive-uint16.mjs +52 -45
  105. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  106. package/dist/number/branded-types/positive-uint32.d.mts +68 -59
  107. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  108. package/dist/number/branded-types/positive-uint32.mjs +52 -46
  109. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  110. package/dist/number/branded-types/safe-int.d.mts +52 -66
  111. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  112. package/dist/number/branded-types/safe-int.mjs +45 -47
  113. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  114. package/dist/number/branded-types/safe-uint.d.mts +68 -58
  115. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  116. package/dist/number/branded-types/safe-uint.mjs +53 -46
  117. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  118. package/dist/number/branded-types/uint.d.mts +72 -55
  119. package/dist/number/branded-types/uint.d.mts.map +1 -1
  120. package/dist/number/branded-types/uint.mjs +52 -45
  121. package/dist/number/branded-types/uint.mjs.map +1 -1
  122. package/dist/number/branded-types/uint16.d.mts +66 -59
  123. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  124. package/dist/number/branded-types/uint16.mjs +51 -45
  125. package/dist/number/branded-types/uint16.mjs.map +1 -1
  126. package/dist/number/branded-types/uint32.d.mts +66 -57
  127. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  128. package/dist/number/branded-types/uint32.mjs +50 -45
  129. package/dist/number/branded-types/uint32.mjs.map +1 -1
  130. package/dist/number/enum/int8.d.mts +62 -66
  131. package/dist/number/enum/int8.d.mts.map +1 -1
  132. package/dist/number/enum/int8.mjs +57 -51
  133. package/dist/number/enum/int8.mjs.map +1 -1
  134. package/dist/number/enum/uint8.d.mts +66 -59
  135. package/dist/number/enum/uint8.d.mts.map +1 -1
  136. package/dist/number/enum/uint8.mjs +57 -51
  137. package/dist/number/enum/uint8.mjs.map +1 -1
  138. package/dist/number/refined-number-utils.d.mts +9 -9
  139. package/dist/number/refined-number-utils.d.mts.map +1 -1
  140. package/dist/number/refined-number-utils.mjs +7 -7
  141. package/dist/number/refined-number-utils.mjs.map +1 -1
  142. package/package.json +2 -1
  143. package/src/number/branded-types/finite-number.mts +47 -61
  144. package/src/number/branded-types/int.mts +40 -46
  145. package/src/number/branded-types/int16.mts +72 -60
  146. package/src/number/branded-types/int32.mts +72 -60
  147. package/src/number/branded-types/negative-finite-number.mts +78 -71
  148. package/src/number/branded-types/negative-finite-number.test.mts +4 -4
  149. package/src/number/branded-types/negative-int.mts +68 -60
  150. package/src/number/branded-types/negative-int.test.mts +5 -5
  151. package/src/number/branded-types/negative-safe-int.mts +66 -68
  152. package/src/number/branded-types/negative-safe-int.test.mts +4 -4
  153. package/src/number/branded-types/non-negative-finite-number.mts +81 -66
  154. package/src/number/branded-types/non-negative-int16.mts +72 -59
  155. package/src/number/branded-types/non-negative-int32.mts +72 -60
  156. package/src/number/branded-types/non-positive-finite-number.mts +71 -56
  157. package/src/number/branded-types/non-positive-finite-number.test.mts +7 -7
  158. package/src/number/branded-types/non-positive-int.mts +47 -147
  159. package/src/number/branded-types/non-positive-int.test.mts +7 -7
  160. package/src/number/branded-types/non-positive-safe-int.mts +63 -55
  161. package/src/number/branded-types/non-positive-safe-int.test.mts +7 -7
  162. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  163. package/src/number/branded-types/non-zero-int.mts +51 -38
  164. package/src/number/branded-types/non-zero-int16.mts +60 -55
  165. package/src/number/branded-types/non-zero-int32.mts +60 -56
  166. package/src/number/branded-types/non-zero-safe-int.mts +61 -56
  167. package/src/number/branded-types/non-zero-uint16.mts +60 -55
  168. package/src/number/branded-types/non-zero-uint32.mts +60 -55
  169. package/src/number/branded-types/positive-finite-number.mts +83 -65
  170. package/src/number/branded-types/positive-int.mts +54 -71
  171. package/src/number/branded-types/positive-int16.mts +69 -59
  172. package/src/number/branded-types/positive-int32.mts +69 -59
  173. package/src/number/branded-types/positive-safe-int.mts +73 -62
  174. package/src/number/branded-types/positive-uint16.mts +69 -59
  175. package/src/number/branded-types/positive-uint32.mts +69 -60
  176. package/src/number/branded-types/safe-int.mts +53 -67
  177. package/src/number/branded-types/safe-uint.mts +69 -59
  178. package/src/number/branded-types/uint.mts +73 -56
  179. package/src/number/branded-types/uint16.mts +67 -60
  180. package/src/number/branded-types/uint32.mts +67 -58
  181. package/src/number/enum/int8.mts +70 -73
  182. package/src/number/enum/int8.test.mts +7 -4
  183. package/src/number/enum/uint8.mts +74 -66
  184. package/src/number/enum/uint8.test.mts +7 -4
  185. package/src/number/refined-number-utils.mts +22 -19
@@ -1,20 +1,24 @@
1
1
  import { type Uint16 as TtfImported_Uint16 } from 'ts-type-forge';
2
2
  export type Uint16 = TtfImported_Uint16;
3
3
  /**
4
- * Checks if a number is a Uint16 (16-bit unsigned integer in the range [0,
5
- * 2^16)).
4
+ * Type guard that checks if a value is a non-negative integer less than 2^16.
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a Uint16, `false` otherwise.
6
+ * Returns `true` for a non-negative integer less than 2^16 — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise
9
11
  */
10
12
  export declare const isUint16: (a: number) => a is TtfImported_Uint16;
11
13
  /**
12
- * Casts a number to a Uint16 type.
14
+ * Casts a `number` to the `Uint16` branded type.
15
+ *
16
+ * Validates that the value is a non-negative integer less than 2^16 and returns
17
+ * it with the `Uint16` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a Uint16 type.
16
- * @throws {TypeError} If the value is not a non-negative integer less than
17
- * 2^16.
19
+ * @param value - The value to cast
20
+ * @returns The value as an `Uint16`
21
+ * @throws {TypeError} If the value is not a non-negative integer less than 2^16
18
22
  */
19
23
  export declare const asUint16: <N extends number>(x: N) => number & {
20
24
  readonly "< 2^16": true;
@@ -33,102 +37,105 @@ export declare const asUint16: <N extends number>(x: N) => number & {
33
37
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
34
38
  }> & N;
35
39
  /**
36
- * Namespace providing type-safe arithmetic operations for 16-bit unsigned
37
- * integers.
40
+ * Namespace providing type-safe operations for the `Uint16` branded type.
38
41
  *
39
- * All operations automatically clamp results to the valid Uint16 range [0,
40
- * 65535]. This ensures that all arithmetic maintains the 16-bit unsigned
41
- * integer constraint, with negative results clamped to 0 and overflow results
42
- * clamped to MAX_VALUE.
42
+ * The `Uint16` type represents a non-negative integer less than 2^16. Division
43
+ * (`div`) uses floor division.
43
44
  */
44
45
  export declare const Uint16: {
45
46
  /**
46
- * Type guard to check if a value is a Uint16.
47
+ * Type guard that checks if a value is a non-negative integer less than 2^16.
47
48
  *
48
- * @param value The value to check.
49
- * @returns `true` if the value is a 16-bit unsigned integer, `false`
50
- * otherwise.
49
+ * @param value - The value to check
50
+ * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise
51
+ * @see {@link isUint16} for usage examples
51
52
  */
52
53
  readonly is: (a: number) => a is TtfImported_Uint16;
53
54
  /**
54
- * The minimum value for a 16-bit unsigned integer.
55
- *
56
- * @readonly
55
+ * The smallest value representable as `Uint16` (the lower saturation target
56
+ * of `fromNumber`).
57
57
  */
58
58
  readonly MIN_VALUE: 0;
59
59
  /**
60
- * The maximum value for a 16-bit unsigned integer.
61
- *
62
- * @readonly
60
+ * The largest value representable as `Uint16` (the upper saturation target of
61
+ * `fromNumber`).
63
62
  */
64
63
  readonly MAX_VALUE: number;
65
64
  /**
66
- * Returns the smaller of two Uint16 values.
65
+ * Returns the smallest of the given non-negative integers.
67
66
  *
68
- * @param a The first Uint16.
69
- * @param b The second Uint16.
70
- * @returns The minimum value as a Uint16.
67
+ * @param values - The non-negative integers to compare (at least one required)
68
+ * @returns The smallest value as an `Uint16`
71
69
  */
72
70
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_Uint16>[]) => TtfImported_Uint16;
73
71
  /**
74
- * Returns the larger of two Uint16 values.
72
+ * Returns the largest of the given non-negative integers.
75
73
  *
76
- * @param a The first Uint16.
77
- * @param b The second Uint16.
78
- * @returns The maximum value as a Uint16.
74
+ * @param values - The non-negative integers to compare (at least one required)
75
+ * @returns The largest value as an `Uint16`
79
76
  */
80
77
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_Uint16>[]) => TtfImported_Uint16;
81
78
  /**
82
- * Clamps a number to the Uint16 range.
79
+ * Converts an arbitrary `number` into an `Uint16`, rounding to the nearest
80
+ * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
81
+ *
82
+ * Unlike `asUint16`, this is total: out-of-range inputs are clamped to the
83
+ * nearest representable `Uint16` instead of throwing.
83
84
  *
84
- * @param value The number to clamp.
85
- * @returns The value clamped to [0, 65535] as a Uint16.
85
+ * @param value - The value to convert
86
+ * @returns The value as an `Uint16`
86
87
  */
87
- readonly clamp: (x: number) => TtfImported_Uint16;
88
+ readonly fromNumber: (x: number) => TtfImported_Uint16;
88
89
  /**
89
- * Generates a random Uint16 value within the valid range.
90
+ * Generates a random `Uint16` within the given range.
91
+ *
92
+ * The range is inclusive on both ends.
90
93
  *
91
- * @returns A random Uint16 between 0 and 65535.
94
+ * @param min - The minimum value (inclusive)
95
+ * @param max - The maximum value (inclusive)
96
+ * @returns A random `Uint16` in `[min, max]`
92
97
  */
93
98
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_Uint16> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_Uint16> | undefined) => TtfImported_Uint16;
94
99
  /**
95
- * Raises a Uint16 to the power of another Uint16.
100
+ * Raises `a` to the power `b`, returning `a ** b` as an `Uint16` (floored to
101
+ * an integer).
96
102
  *
97
- * @param a The base Uint16.
98
- * @param b The exponent Uint16.
99
- * @returns `a ** b` clamped to [0, 65535] as a Uint16.
103
+ * @param a - The base non-negative integer
104
+ * @param b - The exponent non-negative integer
105
+ * @returns `a ** b` as an `Uint16`
100
106
  */
101
107
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>) => TtfImported_Uint16;
102
108
  /**
103
- * Adds two Uint16 values.
109
+ * Adds two non-negative integers, returning `a + b` as an `Uint16`.
104
110
  *
105
- * @param a The first Uint16.
106
- * @param b The second Uint16.
107
- * @returns `a + b` clamped to [0, 65535] as a Uint16.
111
+ * @param a - The first non-negative integer
112
+ * @param b - The second non-negative integer
113
+ * @returns The sum of `a` and `b` as an `Uint16`
108
114
  */
109
115
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>) => TtfImported_Uint16;
110
116
  /**
111
- * Subtracts one Uint16 from another.
117
+ * Subtracts two non-negative integers, returning `a - b` as an `Uint16`.
112
118
  *
113
- * @param a The minuend Uint16.
114
- * @param b The subtrahend Uint16.
115
- * @returns `a - b` clamped to [0, 65535] as a Uint16 (minimum 0).
119
+ * @param a - The first non-negative integer
120
+ * @param b - The second non-negative integer
121
+ * @returns The difference of `a` and `b` as an `Uint16`
116
122
  */
117
123
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>) => TtfImported_Uint16;
118
124
  /**
119
- * Multiplies two Uint16 values.
125
+ * Multiplies two non-negative integers, returning `a * b` as an `Uint16`.
120
126
  *
121
- * @param a The first Uint16.
122
- * @param b The second Uint16.
123
- * @returns `a * b` clamped to [0, 65535] as a Uint16.
127
+ * @param a - The first non-negative integer
128
+ * @param b - The second non-negative integer
129
+ * @returns The product of `a` and `b` as an `Uint16`
124
130
  */
125
131
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>) => TtfImported_Uint16;
126
132
  /**
127
- * Divides one Uint16 by another using floor division.
133
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
134
+ * result is `a / b` rounded toward negative infinity, as an `Uint16`.
128
135
  *
129
- * @param a The dividend Uint16.
130
- * @param b The divisor Uint16.
131
- * @returns `⌊a / b⌋` clamped to [0, 65535] as a Uint16.
136
+ * @param a - The dividend
137
+ * @param b - The divisor (must be non-zero)
138
+ * @returns The floored quotient as an `Uint16`
132
139
  */
133
140
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint16>, y: 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 & {
134
141
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"uint16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/uint16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIlE,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC;AA+BxC;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,wCAAK,CAAC;AAE3B;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;MAAW,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM;IACjB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"uint16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/uint16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIlE,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC;AA+BxC;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,wCAAK,CAAC;AAE3B;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;MAAW,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;IACjB;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -6,8 +6,8 @@ const {
6
6
  MIN_VALUE,
7
7
  add,
8
8
  castType,
9
- clamp,
10
9
  div,
10
+ fromNumber,
11
11
  is,
12
12
  max: max_,
13
13
  min: min_,
@@ -25,92 +25,98 @@ const isUint16 = is;
25
25
  const asUint16 = castType;
26
26
  const Uint16 = {
27
27
  /**
28
- * Type guard to check if a value is a Uint16.
28
+ * Type guard that checks if a value is a non-negative integer less than 2^16.
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 16-bit unsigned integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise
32
+ * @see {@link isUint16} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 16-bit unsigned integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `Uint16` (the lower saturation target
37
+ * of `fromNumber`).
39
38
  */
40
39
  MIN_VALUE,
41
40
  /**
42
- * The maximum value for a 16-bit unsigned integer.
43
- *
44
- * @readonly
41
+ * The largest value representable as `Uint16` (the upper saturation target of
42
+ * `fromNumber`).
45
43
  */
46
44
  MAX_VALUE,
47
45
  /**
48
- * Returns the smaller of two Uint16 values.
46
+ * Returns the smallest of the given non-negative integers.
49
47
  *
50
- * @param a The first Uint16.
51
- * @param b The second Uint16.
52
- * @returns The minimum value as a Uint16.
48
+ * @param values - The non-negative integers to compare (at least one required)
49
+ * @returns The smallest value as an `Uint16`
53
50
  */
54
51
  min: min_,
55
52
  /**
56
- * Returns the larger of two Uint16 values.
53
+ * Returns the largest of the given non-negative integers.
57
54
  *
58
- * @param a The first Uint16.
59
- * @param b The second Uint16.
60
- * @returns The maximum value as a Uint16.
55
+ * @param values - The non-negative integers to compare (at least one required)
56
+ * @returns The largest value as an `Uint16`
61
57
  */
62
58
  max: max_,
63
59
  /**
64
- * Clamps a number to the Uint16 range.
60
+ * Converts an arbitrary `number` into an `Uint16`, rounding to the nearest
61
+ * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
65
62
  *
66
- * @param value The number to clamp.
67
- * @returns The value clamped to [0, 65535] as a Uint16.
63
+ * Unlike `asUint16`, this is total: out-of-range inputs are clamped to the
64
+ * nearest representable `Uint16` instead of throwing.
65
+ *
66
+ * @param value - The value to convert
67
+ * @returns The value as an `Uint16`
68
68
  */
69
- clamp,
69
+ fromNumber,
70
70
  /**
71
- * Generates a random Uint16 value within the valid range.
71
+ * Generates a random `Uint16` within the given range.
72
+ *
73
+ * The range is inclusive on both ends.
72
74
  *
73
- * @returns A random Uint16 between 0 and 65535.
75
+ * @param min - The minimum value (inclusive)
76
+ * @param max - The maximum value (inclusive)
77
+ * @returns A random `Uint16` in `[min, max]`
74
78
  */
75
79
  random,
76
80
  /**
77
- * Raises a Uint16 to the power of another Uint16.
81
+ * Raises `a` to the power `b`, returning `a ** b` as an `Uint16` (floored to
82
+ * an integer).
78
83
  *
79
- * @param a The base Uint16.
80
- * @param b The exponent Uint16.
81
- * @returns `a ** b` clamped to [0, 65535] as a Uint16.
84
+ * @param a - The base non-negative integer
85
+ * @param b - The exponent non-negative integer
86
+ * @returns `a ** b` as an `Uint16`
82
87
  */
83
88
  pow,
84
89
  /**
85
- * Adds two Uint16 values.
90
+ * Adds two non-negative integers, returning `a + b` as an `Uint16`.
86
91
  *
87
- * @param a The first Uint16.
88
- * @param b The second Uint16.
89
- * @returns `a + b` clamped to [0, 65535] as a Uint16.
92
+ * @param a - The first non-negative integer
93
+ * @param b - The second non-negative integer
94
+ * @returns The sum of `a` and `b` as an `Uint16`
90
95
  */
91
96
  add,
92
97
  /**
93
- * Subtracts one Uint16 from another.
98
+ * Subtracts two non-negative integers, returning `a - b` as an `Uint16`.
94
99
  *
95
- * @param a The minuend Uint16.
96
- * @param b The subtrahend Uint16.
97
- * @returns `a - b` clamped to [0, 65535] as a Uint16 (minimum 0).
100
+ * @param a - The first non-negative integer
101
+ * @param b - The second non-negative integer
102
+ * @returns The difference of `a` and `b` as an `Uint16`
98
103
  */
99
104
  sub,
100
105
  /**
101
- * Multiplies two Uint16 values.
106
+ * Multiplies two non-negative integers, returning `a * b` as an `Uint16`.
102
107
  *
103
- * @param a The first Uint16.
104
- * @param b The second Uint16.
105
- * @returns `a * b` clamped to [0, 65535] as a Uint16.
108
+ * @param a - The first non-negative integer
109
+ * @param b - The second non-negative integer
110
+ * @returns The product of `a` and `b` as an `Uint16`
106
111
  */
107
112
  mul,
108
113
  /**
109
- * Divides one Uint16 by another using floor division.
114
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
115
+ * result is `a / b` rounded toward negative infinity, as an `Uint16`.
110
116
  *
111
- * @param a The dividend Uint16.
112
- * @param b The divisor Uint16.
113
- * @returns `⌊a / b⌋` clamped to [0, 65535] as a Uint16.
117
+ * @param a - The dividend
118
+ * @param b - The divisor (must be non-zero)
119
+ * @returns The floored quotient as an `Uint16`
114
120
  */
115
121
  div
116
122
  };
@@ -1 +1 @@
1
- {"version":3,"file":"uint16.mjs","sources":["../../../src/number/branded-types/uint16.mts"],"sourcesContent":["import { type Uint16 as TtfImported_Uint16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Uint16 = TtfImported_Uint16;\n\ntype ElementType = Uint16;\n\nconst typeNameInMessage = 'a non-negative integer less than 2^16';\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 0,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 16 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a Uint16 (16-bit unsigned integer in the range [0,\n * 2^16)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a Uint16, `false` otherwise.\n */\nexport const isUint16 = is;\n\n/**\n * Casts a number to a Uint16 type.\n *\n * @param value The value to cast.\n * @returns The value as a Uint16 type.\n * @throws {TypeError} If the value is not a non-negative integer less than\n * 2^16.\n */\nexport const asUint16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit unsigned\n * integers.\n *\n * All operations automatically clamp results to the valid Uint16 range [0,\n * 65535]. This ensures that all arithmetic maintains the 16-bit unsigned\n * integer constraint, with negative results clamped to 0 and overflow results\n * clamped to MAX_VALUE.\n */\nexport const Uint16 = {\n /**\n * Type guard to check if a value is a Uint16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit unsigned integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit unsigned integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit unsigned integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two Uint16 values.\n *\n * @param a The first Uint16.\n * @param b The second Uint16.\n * @returns The minimum value as a Uint16.\n */\n min: min_,\n\n /**\n * Returns the larger of two Uint16 values.\n *\n * @param a The first Uint16.\n * @param b The second Uint16.\n * @returns The maximum value as a Uint16.\n */\n max: max_,\n\n /**\n * Clamps a number to the Uint16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [0, 65535] as a Uint16.\n */\n clamp,\n\n /**\n * Generates a random Uint16 value within the valid range.\n *\n * @returns A random Uint16 between 0 and 65535.\n */\n random,\n\n /**\n * Raises a Uint16 to the power of another Uint16.\n *\n * @param a The base Uint16.\n * @param b The exponent Uint16.\n * @returns `a ** b` clamped to [0, 65535] as a Uint16.\n */\n pow,\n\n /**\n * Adds two Uint16 values.\n *\n * @param a The first Uint16.\n * @param b The second Uint16.\n * @returns `a + b` clamped to [0, 65535] as a Uint16.\n */\n add,\n\n /**\n * Subtracts one Uint16 from another.\n *\n * @param a The minuend Uint16.\n * @param b The subtrahend Uint16.\n * @returns `a - b` clamped to [0, 65535] as a Uint16 (minimum 0).\n */\n sub,\n\n /**\n * Multiplies two Uint16 values.\n *\n * @param a The first Uint16.\n * @param b The second Uint16.\n * @returns `a * b` clamped to [0, 65535] as a Uint16.\n */\n mul,\n\n /**\n * Divides one Uint16 by another using floor division.\n *\n * @param a The dividend Uint16.\n * @param b The divisor Uint16.\n * @returns `⌊a / b⌋` clamped to [0, 65535] as a Uint16.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Uint16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof Uint16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,uCAAA;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;AASH,MAAM,QAAA,GAAW;AAUjB,MAAM,QAAA,GAAW;AAWjB,MAAM,MAAA,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQpB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;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,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"uint16.mjs","sources":["../../../src/number/branded-types/uint16.mts"],"sourcesContent":["import { type Uint16 as TtfImported_Uint16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Uint16 = TtfImported_Uint16;\n\ntype ElementType = Uint16;\n\nconst typeNameInMessage = 'a non-negative integer less than 2^16';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n div,\n fromNumber,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 0,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 16 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-negative integer less than 2^16.\n *\n * Returns `true` for a non-negative integer less than 2^16 — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise\n */\nexport const isUint16 = is;\n\n/**\n * Casts a `number` to the `Uint16` branded type.\n *\n * Validates that the value is a non-negative integer less than 2^16 and returns\n * it with the `Uint16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as an `Uint16`\n * @throws {TypeError} If the value is not a non-negative integer less than 2^16\n */\nexport const asUint16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `Uint16` branded type.\n *\n * The `Uint16` type represents a non-negative integer less than 2^16. Division\n * (`div`) uses floor division.\n */\nexport const Uint16 = {\n /**\n * Type guard that checks if a value is a non-negative integer less than 2^16.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise\n * @see {@link isUint16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `Uint16` (the lower saturation target\n * of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `Uint16` (the upper saturation target of\n * `fromNumber`).\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The smallest value as an `Uint16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The largest value as an `Uint16`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into an `Uint16`, rounding to the nearest\n * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.\n *\n * Unlike `asUint16`, this is total: out-of-range inputs are clamped to the\n * nearest representable `Uint16` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as an `Uint16`\n */\n fromNumber,\n\n /**\n * Generates a random `Uint16` 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 `Uint16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as an `Uint16` (floored to\n * an integer).\n *\n * @param a - The base non-negative integer\n * @param b - The exponent non-negative integer\n * @returns `a ** b` as an `Uint16`\n */\n pow,\n\n /**\n * Adds two non-negative integers, returning `a + b` as an `Uint16`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The sum of `a` and `b` as an `Uint16`\n */\n add,\n\n /**\n * Subtracts two non-negative integers, returning `a - b` as an `Uint16`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The difference of `a` and `b` as an `Uint16`\n */\n sub,\n\n /**\n * Multiplies two non-negative integers, returning `a * b` as an `Uint16`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The product of `a` and `b` as an `Uint16`\n */\n mul,\n\n /**\n * Divides two non-negative integers using floor division (`⌊a / b⌋`): the\n * result is `a / b` rounded toward negative infinity, as an `Uint16`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as an `Uint16`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Uint16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof Uint16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,uCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA;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,QAAA,GAAW;AAYjB,MAAM,QAAA,GAAW;AAQjB,MAAM,MAAA,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQpB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,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;AAAA;AAAA;AAAA,EAYL,UAAA;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;;;;"}
@@ -1,20 +1,24 @@
1
1
  import { type Uint32 as TtfImported_Uint32 } from 'ts-type-forge';
2
2
  export type Uint32 = TtfImported_Uint32;
3
3
  /**
4
- * Checks if a number is a Uint32 (32-bit unsigned integer in the range [0,
5
- * 2^32)).
4
+ * Type guard that checks if a value is a non-negative integer less than 2^32.
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a Uint32, `false` otherwise.
6
+ * Returns `true` for a non-negative integer less than 2^32 — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-negative integer less than 2^32, `false` otherwise
9
11
  */
10
12
  export declare const isUint32: (a: number) => a is TtfImported_Uint32;
11
13
  /**
12
- * Casts a number to a Uint32 type.
14
+ * Casts a `number` to the `Uint32` branded type.
15
+ *
16
+ * Validates that the value is a non-negative integer less than 2^32 and returns
17
+ * it with the `Uint32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a Uint32 type.
16
- * @throws {TypeError} If the value is not a non-negative integer less than
17
- * 2^32.
19
+ * @param value - The value to cast
20
+ * @returns The value as an `Uint32`
21
+ * @throws {TypeError} If the value is not a non-negative integer less than 2^32
18
22
  */
19
23
  export declare const asUint32: <N extends number>(x: N) => number & {
20
24
  readonly "< 2^32": true;
@@ -31,100 +35,105 @@ export declare const asUint32: <N extends number>(x: N) => number & {
31
35
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
32
36
  }> & N;
33
37
  /**
34
- * Utility functions for working with Uint32 (32-bit unsigned integer) branded
35
- * types. Provides type-safe operations that ensure results remain within the
36
- * valid range [0, 2^32). All arithmetic operations are clamped to maintain the
37
- * Uint32 constraint.
38
+ * Namespace providing type-safe operations for the `Uint32` branded type.
39
+ *
40
+ * The `Uint32` type represents a non-negative integer less than 2^32. Division
41
+ * (`div`) uses floor division.
38
42
  */
39
43
  export declare const Uint32: {
40
44
  /**
41
- * Type guard that checks if a value is a 32-bit unsigned integer.
45
+ * Type guard that checks if a value is a non-negative integer less than 2^32.
42
46
  *
43
47
  * @param value - The value to check
44
- * @returns `true` if the value is within the range [0, 2^32), `false`
45
- * otherwise
48
+ * @returns `true` if the value is a non-negative integer less than 2^32, `false` otherwise
49
+ * @see {@link isUint32} for usage examples
46
50
  */
47
51
  readonly is: (a: number) => a is TtfImported_Uint32;
48
52
  /**
49
- * The minimum value for a Uint32.
50
- *
51
- * @readonly
53
+ * The smallest value representable as `Uint32` (the lower saturation target
54
+ * of `fromNumber`).
52
55
  */
53
56
  readonly MIN_VALUE: 0;
54
57
  /**
55
- * The maximum value for a Uint32.
56
- *
57
- * @readonly
58
+ * The largest value representable as `Uint32` (the upper saturation target of
59
+ * `fromNumber`).
58
60
  */
59
61
  readonly MAX_VALUE: number;
60
62
  /**
61
- * Returns the minimum of multiple Uint32 values.
63
+ * Returns the smallest of the given non-negative integers.
62
64
  *
63
- * @param values - The Uint32 values to compare
64
- * @returns The smallest value as a Uint32
65
+ * @param values - The non-negative integers to compare (at least one required)
66
+ * @returns The smallest value as an `Uint32`
65
67
  */
66
68
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_Uint32>[]) => TtfImported_Uint32;
67
69
  /**
68
- * Returns the maximum of multiple Uint32 values.
70
+ * Returns the largest of the given non-negative integers.
69
71
  *
70
- * @param values - The Uint32 values to compare
71
- * @returns The largest value as a Uint32
72
+ * @param values - The non-negative integers to compare (at least one required)
73
+ * @returns The largest value as an `Uint32`
72
74
  */
73
75
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_Uint32>[]) => TtfImported_Uint32;
74
76
  /**
75
- * Clamps a Uint32 to be within the specified range.
77
+ * Converts an arbitrary `number` into an `Uint32`, rounding to the nearest
78
+ * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
79
+ *
80
+ * Unlike `asUint32`, this is total: out-of-range inputs are clamped to the
81
+ * nearest representable `Uint32` instead of throwing.
76
82
  *
77
- * @param value - The value to clamp
78
- * @param min - The minimum value
79
- * @param max - The maximum value
80
- * @returns The clamped value as a Uint32
83
+ * @param value - The value to convert
84
+ * @returns The value as an `Uint32`
81
85
  */
82
- readonly clamp: (x: number) => TtfImported_Uint32;
86
+ readonly fromNumber: (x: number) => TtfImported_Uint32;
83
87
  /**
84
- * Generates a random Uint32 value.
88
+ * Generates a random `Uint32` within the given range.
89
+ *
90
+ * The range is inclusive on both ends.
85
91
  *
86
- * @returns A random Uint32 value within [0, 2^32)
92
+ * @param min - The minimum value (inclusive)
93
+ * @param max - The maximum value (inclusive)
94
+ * @returns A random `Uint32` in `[min, max]`
87
95
  */
88
96
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_Uint32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_Uint32> | undefined) => TtfImported_Uint32;
89
97
  /**
90
- * Raises a Uint32 to a power, with result clamped to [0, 2^32).
98
+ * Raises `a` to the power `b`, returning `a ** b` as an `Uint32` (floored to
99
+ * an integer).
91
100
  *
92
- * @param a - The base Uint32
93
- * @param b - The exponent Uint32
94
- * @returns `a ** b` as a Uint32, clamped to valid range
101
+ * @param a - The base non-negative integer
102
+ * @param b - The exponent non-negative integer
103
+ * @returns `a ** b` as an `Uint32`
95
104
  */
96
105
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>) => TtfImported_Uint32;
97
106
  /**
98
- * Adds two Uint32 values, with result clamped to [0, 2^32).
107
+ * Adds two non-negative integers, returning `a + b` as an `Uint32`.
99
108
  *
100
- * @param a - First Uint32
101
- * @param b - Second Uint32
102
- * @returns `a + b` as a Uint32, clamped to valid range
109
+ * @param a - The first non-negative integer
110
+ * @param b - The second non-negative integer
111
+ * @returns The sum of `a` and `b` as an `Uint32`
103
112
  */
104
113
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>) => TtfImported_Uint32;
105
114
  /**
106
- * Subtracts two Uint32 values, with result clamped to [0, 2^32).
115
+ * Subtracts two non-negative integers, returning `a - b` as an `Uint32`.
107
116
  *
108
- * @param a - First Uint32
109
- * @param b - Second Uint32
110
- * @returns `a - b` as a Uint32, clamped to valid range (minimum 0)
117
+ * @param a - The first non-negative integer
118
+ * @param b - The second non-negative integer
119
+ * @returns The difference of `a` and `b` as an `Uint32`
111
120
  */
112
121
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>) => TtfImported_Uint32;
113
122
  /**
114
- * Multiplies two Uint32 values, with result clamped to [0, 2^32).
123
+ * Multiplies two non-negative integers, returning `a * b` as an `Uint32`.
115
124
  *
116
- * @param a - First Uint32
117
- * @param b - Second Uint32
118
- * @returns `a * b` as a Uint32, clamped to valid range
125
+ * @param a - The first non-negative integer
126
+ * @param b - The second non-negative integer
127
+ * @returns The product of `a` and `b` as an `Uint32`
119
128
  */
120
129
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>) => TtfImported_Uint32;
121
130
  /**
122
- * Divides two Uint32 values using floor division, with result clamped to [0,
123
- * 2^32).
131
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
132
+ * result is `a / b` rounded toward negative infinity, as an `Uint32`.
124
133
  *
125
- * @param a - The dividend Uint32
126
- * @param b - The divisor Uint32
127
- * @returns `⌊a / b⌋` as a Uint32, clamped to valid range
134
+ * @param a - The dividend
135
+ * @param b - The divisor (must be non-zero)
136
+ * @returns The floored quotient as an `Uint32`
128
137
  */
129
138
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_Uint32>, y: 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 & {
130
139
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIlE,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC;AA+BxC;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,wCAAK,CAAC;AAE3B;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;MAAW,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;IACjB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;OAOG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIlE,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC;AA+BxC;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,wCAAK,CAAC;AAE3B;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;MAAW,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;IACjB;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;CAEK,CAAC"}