@typeonce/ritmo-math 0.12.0 → 0.13.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.
- package/CHANGELOG.md +15 -0
- package/README.md +1 -1
- package/dist/Aabb.d.ts +15 -15
- package/dist/Aabb.d.ts.map +1 -1
- package/dist/Aabb.js +13 -5
- package/dist/Aabb.js.map +1 -1
- package/dist/Random.d.ts +16 -6
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +13 -3
- package/dist/Random.js.map +1 -1
- package/dist/Scalar.d.ts +26 -7
- package/dist/Scalar.d.ts.map +1 -1
- package/dist/Scalar.js +6 -3
- package/dist/Scalar.js.map +1 -1
- package/dist/Size2.d.ts +15 -15
- package/dist/Size2.d.ts.map +1 -1
- package/dist/Size2.js +13 -5
- package/dist/Size2.js.map +1 -1
- package/dist/Vector2.d.ts +15 -15
- package/dist/Vector2.d.ts.map +1 -1
- package/dist/Vector2.js +13 -5
- package/dist/Vector2.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/internal/aabb.d.ts +9 -2
- package/dist/internal/aabb.d.ts.map +1 -1
- package/dist/internal/aabb.js +3 -1
- package/dist/internal/aabb.js.map +1 -1
- package/dist/internal/codec.d.ts +9 -0
- package/dist/internal/codec.d.ts.map +1 -0
- package/dist/internal/codec.js +16 -0
- package/dist/internal/codec.js.map +1 -0
- package/dist/internal/scalar.d.ts +3 -4
- package/dist/internal/scalar.d.ts.map +1 -1
- package/dist/internal/scalar.js +19 -12
- package/dist/internal/scalar.js.map +1 -1
- package/dist/internal/size2.d.ts +9 -2
- package/dist/internal/size2.d.ts.map +1 -1
- package/dist/internal/size2.js +3 -1
- package/dist/internal/size2.js.map +1 -1
- package/dist/internal/vector2.d.ts +9 -2
- package/dist/internal/vector2.d.ts.map +1 -1
- package/dist/internal/vector2.js +3 -1
- package/dist/internal/vector2.js.map +1 -1
- package/package.json +2 -2
- package/src/Aabb.ts +15 -16
- package/src/Random.ts +21 -7
- package/src/Scalar.ts +27 -7
- package/src/Size2.ts +15 -16
- package/src/Vector2.ts +15 -16
- package/src/index.ts +3 -3
- package/src/internal/aabb.ts +8 -2
- package/src/internal/codec.ts +21 -0
- package/src/internal/scalar.ts +24 -13
- package/src/internal/size2.ts +8 -2
- package/src/internal/vector2.ts +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @typeonce/ritmo-math
|
|
2
2
|
|
|
3
|
+
## 0.13.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 835f6ba: **Each validated type has one `codec`, a Standard Schema, and a guard `is` that takes `unknown`.** `Vector2.codec`, `Size2.codec`, `Aabb.codec`, `Random.codec`, and `Scalar.Finite.codec` / `NonNegative.codec` / `Positive.codec` go straight into `Descriptor.ConstructedComponent(...)` or `ConstructedResource(...)`; inside a game's own schema, build the field from `is` (`Schema.declare(Vector2.is)`, `z.custom(Vector2.is)`). The scalar constructors are typed `Scalar.Constructor<T>`, which replaces `Brand.Constructor`.
|
|
8
|
+
|
|
9
|
+
- **Breaking: `Vector2.decode`, `Size2.decode`, `Aabb.decode`, `Random.decode`, and their `DecodeError` are removed.** `Descriptor.ConstructedComponent(Vector2)` becomes `Descriptor.ConstructedComponent(Vector2.codec)`; to check a value, use `Vector2.is(raw)` or `Vector2.result(raw)`, which stay.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [791b52a]
|
|
14
|
+
- Updated dependencies [b3d6502]
|
|
15
|
+
- Updated dependencies [835f6ba]
|
|
16
|
+
- @typeonce/ritmo@0.13.0
|
|
17
|
+
|
|
3
18
|
## 0.12.0
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Math for ritmo games, in two kinds:
|
|
4
4
|
|
|
5
|
-
- **Validated values**: `Scalar`, `
|
|
5
|
+
- **Validated values**: `Scalar` (`Finite`, `NonNegative`, `Positive`), `Vector2`, `Size2`, and `Aabb`. Each has constructors that validate input (`result`, `option`), a guard `is`, and one `codec`, a Standard Schema: `Descriptor.ConstructedComponent(Vector2.codec)` saves the value and checks it on restore. Inside a game's own schema, build the field from the guard (`Schema.declare(Vector2.is)` in Effect, `z.custom(Vector2.is)` in Zod). `Random.codec` does the same for a generator kept in a resource.
|
|
6
6
|
- **Hot-path helpers** on plain numbers, for code that runs every step: `Vec2` vector arithmetic (validated `Vector2` values pass straight in), `Box2` edge boxes, `Collide2` swept circle collision that slides along walls and never tunnels through them, a `SpatialGrid` broad phase that allocates nothing per step, a `FlowField` that leads bodies around walls, a deterministic `Random` whose whole state is one integer (keep it in a resource, so runs replay), and `Ops`, math functions that return the same bits on every engine.
|
|
7
7
|
|
|
8
8
|
```ts
|
package/dist/Aabb.d.ts
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
* Immutable geometry helpers for translation and overlap checks.
|
|
36
36
|
*/
|
|
37
37
|
import type * as Brand from "@typeonce/ritmo/Brand";
|
|
38
|
+
import type { StandardSchema } from "@typeonce/ritmo/Descriptor";
|
|
38
39
|
import type * as Result from "@typeonce/ritmo/Result";
|
|
39
40
|
import type * as Scalar from "./Scalar.ts";
|
|
40
41
|
import type * as Size2 from "./Size2.ts";
|
|
@@ -71,15 +72,6 @@ export type Error = {
|
|
|
71
72
|
readonly error: Size2.Error;
|
|
72
73
|
readonly input: Raw;
|
|
73
74
|
};
|
|
74
|
-
/**
|
|
75
|
-
* Failure produced by `decode` when the input does not have the raw shape.
|
|
76
|
-
*
|
|
77
|
-
* @category AABB Types
|
|
78
|
-
*/
|
|
79
|
-
export type DecodeError = {
|
|
80
|
-
readonly tag: "Aabb/Malformed";
|
|
81
|
-
readonly input: unknown;
|
|
82
|
-
};
|
|
83
75
|
/**
|
|
84
76
|
* Validates one raw AABB and returns an explicit result.
|
|
85
77
|
*
|
|
@@ -95,13 +87,20 @@ export type DecodeError = {
|
|
|
95
87
|
*/
|
|
96
88
|
export declare const result: (raw: Raw) => Result.Result<Aabb, Error>;
|
|
97
89
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
90
|
+
* The codec of `Aabb` (a Standard Schema, see `Descriptor.Codec`): give it to
|
|
91
|
+
* `Descriptor.ConstructedComponent(...)` so raw input and saves are validated.
|
|
92
|
+
* Its saved form is the raw shape, so it needs no `encode`. To put a `Aabb`
|
|
93
|
+
* inside your own object schema, use {@link is} with your library's guard
|
|
94
|
+
* schema (`Schema.declare`, `z.custom`).
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* const Position = Descriptor.ConstructedComponent(Aabb.codec)("Game/Position")
|
|
99
|
+
* ```
|
|
101
100
|
*
|
|
102
101
|
* @category Construction
|
|
103
102
|
*/
|
|
104
|
-
export declare const
|
|
103
|
+
export declare const codec: StandardSchema<Raw, Aabb>;
|
|
105
104
|
/**
|
|
106
105
|
* Validates one raw AABB and returns `null` on failure.
|
|
107
106
|
*
|
|
@@ -109,11 +108,12 @@ export declare const decode: (raw: unknown) => Result.Result<Aabb, Error | Decod
|
|
|
109
108
|
*/
|
|
110
109
|
export declare const option: (raw: Raw) => Aabb | null;
|
|
111
110
|
/**
|
|
112
|
-
*
|
|
111
|
+
* Whether any value is a valid `Aabb`: a guard, also for building a
|
|
112
|
+
* `Aabb` field in your own schema (`Schema.declare(Aabb.is)`).
|
|
113
113
|
*
|
|
114
114
|
* @category Construction
|
|
115
115
|
*/
|
|
116
|
-
export declare const is: (raw:
|
|
116
|
+
export declare const is: (raw: unknown) => raw is Aabb;
|
|
117
117
|
/**
|
|
118
118
|
* Reads the center position of one AABB.
|
|
119
119
|
*
|
package/dist/Aabb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aabb.d.ts","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Aabb.d.ts","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"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"}
|
package/dist/Aabb.js
CHANGED
|
@@ -14,13 +14,20 @@ import * as internal from "./internal/aabb.js";
|
|
|
14
14
|
*/
|
|
15
15
|
export const result = internal.result;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* The codec of `Aabb` (a Standard Schema, see `Descriptor.Codec`): give it to
|
|
18
|
+
* `Descriptor.ConstructedComponent(...)` so raw input and saves are validated.
|
|
19
|
+
* Its saved form is the raw shape, so it needs no `encode`. To put a `Aabb`
|
|
20
|
+
* inside your own object schema, use {@link is} with your library's guard
|
|
21
|
+
* schema (`Schema.declare`, `z.custom`).
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const Position = Descriptor.ConstructedComponent(Aabb.codec)("Game/Position")
|
|
26
|
+
* ```
|
|
20
27
|
*
|
|
21
28
|
* @category Construction
|
|
22
29
|
*/
|
|
23
|
-
export const
|
|
30
|
+
export const codec = internal.codec;
|
|
24
31
|
/**
|
|
25
32
|
* Validates one raw AABB and returns `null` on failure.
|
|
26
33
|
*
|
|
@@ -28,7 +35,8 @@ export const decode = internal.decode;
|
|
|
28
35
|
*/
|
|
29
36
|
export const option = internal.option;
|
|
30
37
|
/**
|
|
31
|
-
*
|
|
38
|
+
* Whether any value is a valid `Aabb`: a guard, also for building a
|
|
39
|
+
* `Aabb` field in your own schema (`Schema.declare(Aabb.is)`).
|
|
32
40
|
*
|
|
33
41
|
* @category Construction
|
|
34
42
|
*/
|
package/dist/Aabb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aabb.js","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Aabb.js","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAmC9C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,MAAM,GAA6C,QAAQ,CAAC,MAAM,CAAA;AAC/E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,KAAK,GAA8B,QAAQ,CAAC,KAAK,CAAA;AAC9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAA8B,QAAQ,CAAC,MAAM,CAAA;AAChE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,EAAE,GAAkC,QAAQ,CAAC,EAAE,CAAA;AAC5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAoC,QAAQ,CAAC,QAAQ,CAAA;AAC1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAgC,QAAQ,CAAC,IAAI,CAAA;AAC9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAkC,QAAQ,CAAC,IAAI,CAAA;AAChE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAkC,QAAQ,CAAC,KAAK,CAAA;AAClE;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAkC,QAAQ,CAAC,GAAG,CAAA;AAC9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkC,QAAQ,CAAC,MAAM,CAAA;AACpE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAA2C,QAAQ,CAAC,UAAU,CAAA;AACrF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2C,QAAQ,CAAC,oBAAoB,CAAA;AACzG;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2C,QAAQ,CAAC,kBAAkB,CAAA;AACrG;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAiD,QAAQ,CAAC,SAAS,CAAA"}
|
package/dist/Random.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* integer.
|
|
4
4
|
*
|
|
5
5
|
* Keep the state in a resource, so a run replays exactly and saves with the
|
|
6
|
-
* world: declare it with
|
|
6
|
+
* world: declare it with `Random.codec` as its schema, start it with
|
|
7
7
|
* `seed`, and draw in systems through `draw` over its write cell, which writes
|
|
8
8
|
* every draw back (rolled back with a failed system). Two generators made
|
|
9
9
|
* from the same state draw the same sequence on every platform. `make` is for
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```ts
|
|
14
|
-
* const Rng = Descriptor.ConstructedResource(Random)("Game/Rng")
|
|
14
|
+
* const Rng = Descriptor.ConstructedResource(Random.codec)("Game/Rng")
|
|
15
15
|
* const runtime = Game.Runtime.make({ services, resources: { Rng: Random.seed(0x5eed) } })
|
|
16
16
|
*
|
|
17
17
|
* Game.System("Game/Spawn", { resources: { rng: Game.System.writeResource(Rng) } }, ({ resources }) => {
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
*/
|
|
36
36
|
import type * as Brand from "@typeonce/ritmo/Brand";
|
|
37
37
|
import type { WriteCell } from "@typeonce/ritmo/Query";
|
|
38
|
+
import type { StandardSchema } from "@typeonce/ritmo/Descriptor";
|
|
38
39
|
import * as Result from "@typeonce/ritmo/Result";
|
|
39
40
|
/**
|
|
40
41
|
* A generator. Every draw advances `state`.
|
|
@@ -72,7 +73,7 @@ export interface Random {
|
|
|
72
73
|
export declare const make: (state: number) => Random;
|
|
73
74
|
/**
|
|
74
75
|
* A generator's state as a resource holds it: an unsigned 32-bit integer.
|
|
75
|
-
* Only `seed`, `result`, and `
|
|
76
|
+
* Only `seed`, `result`, and `codec` make one, so `draw` takes the cell of a
|
|
76
77
|
* random resource and nothing else.
|
|
77
78
|
*
|
|
78
79
|
* @category Resource
|
|
@@ -84,17 +85,26 @@ export interface InvalidState {
|
|
|
84
85
|
readonly value: unknown;
|
|
85
86
|
}
|
|
86
87
|
/**
|
|
87
|
-
* Validates a state, for
|
|
88
|
+
* Validates a state, for game code that builds one from a number.
|
|
88
89
|
*
|
|
89
90
|
* @category Resource
|
|
90
91
|
*/
|
|
91
92
|
export declare const result: (raw: number) => Result.Result<State, InvalidState>;
|
|
92
93
|
/**
|
|
93
|
-
*
|
|
94
|
+
* Whether any value is a generator state: a guard, also for building a
|
|
95
|
+
* state field in your own schema (`Schema.declare(Random.is)`).
|
|
94
96
|
*
|
|
95
97
|
* @category Resource
|
|
96
98
|
*/
|
|
97
|
-
export declare const
|
|
99
|
+
export declare const is: (raw: unknown) => raw is State;
|
|
100
|
+
/**
|
|
101
|
+
* The codec of a random resource's state (a Standard Schema, see
|
|
102
|
+
* `Descriptor.Codec`): `Descriptor.ConstructedResource(Random.codec)`. Its
|
|
103
|
+
* saved form is the number itself, so it needs no `encode`.
|
|
104
|
+
*
|
|
105
|
+
* @category Resource
|
|
106
|
+
*/
|
|
107
|
+
export declare const codec: StandardSchema<number, State>;
|
|
98
108
|
/**
|
|
99
109
|
* The starting state for a seed, reduced to an unsigned 32-bit integer like
|
|
100
110
|
* `make`: the value to give a random resource in `Game.Runtime.make`.
|
package/dist/Random.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Random.d.ts","sourceRoot":"","sources":["../src/Random.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"Random.d.ts","sourceRoot":"","sources":["../src/Random.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAGhD;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,yBAAyB;IACzB,IAAI,IAAI,MAAM,CAAA;IACd,6GAA6G;IAC7G,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACvC,gHAAgH;IAChH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;IAClD,4FAA4F;IAC5F,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC/C,iDAAiD;IACjD,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;CACjF;AAsED;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,UAAW,MAAM,KAAG,MAA+B,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAEzD,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AAKD;;;;GAIG;AACH,eAAO,MAAM,MAAM,QAAS,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAC2B,CAAA;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,EAAE,QAAS,OAAO,KAAG,GAAG,IAAI,KAAqB,CAAA;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAG/C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,UAAW,MAAM,KAAG,KAA+B,CAAA;AAmBpE;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,SAAU,SAAS,CAAC,KAAK,CAAC,KAAG,MAA8B,CAAA"}
|
package/dist/Random.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Result from "@typeonce/ritmo/Result";
|
|
2
|
+
import { codecOf } from "./internal/codec.js";
|
|
2
3
|
const usable = (weight) => weight > 0 && weight < Infinity;
|
|
3
4
|
class Mulberry32 {
|
|
4
5
|
state;
|
|
@@ -72,17 +73,26 @@ class Mulberry32 {
|
|
|
72
73
|
export const make = (state) => new Mulberry32(state);
|
|
73
74
|
const isState = (value) => typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 0xffffffff;
|
|
74
75
|
/**
|
|
75
|
-
* Validates a state, for
|
|
76
|
+
* Validates a state, for game code that builds one from a number.
|
|
76
77
|
*
|
|
77
78
|
* @category Resource
|
|
78
79
|
*/
|
|
79
80
|
export const result = (raw) => isState(raw) ? Result.success(raw) : Result.failure({ _tag: "InvalidRandomState", value: raw });
|
|
80
81
|
/**
|
|
81
|
-
*
|
|
82
|
+
* Whether any value is a generator state: a guard, also for building a
|
|
83
|
+
* state field in your own schema (`Schema.declare(Random.is)`).
|
|
82
84
|
*
|
|
83
85
|
* @category Resource
|
|
84
86
|
*/
|
|
85
|
-
export const
|
|
87
|
+
export const is = (raw) => isState(raw);
|
|
88
|
+
/**
|
|
89
|
+
* The codec of a random resource's state (a Standard Schema, see
|
|
90
|
+
* `Descriptor.Codec`): `Descriptor.ConstructedResource(Random.codec)`. Its
|
|
91
|
+
* saved form is the number itself, so it needs no `encode`.
|
|
92
|
+
*
|
|
93
|
+
* @category Resource
|
|
94
|
+
*/
|
|
95
|
+
export const codec = codecOf((raw) => isState(raw) ? Result.success(raw) : Result.failure({ _tag: "InvalidRandomState", value: raw }), "a generator state: an unsigned 32-bit integer");
|
|
86
96
|
/**
|
|
87
97
|
* The starting state for a seed, reduced to an unsigned 32-bit integer like
|
|
88
98
|
* `make`: the value to give a random resource in `Game.Runtime.make`.
|
package/dist/Random.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../src/Random.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../src/Random.ts"],"names":[],"mappings":"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"}
|
package/dist/Scalar.d.ts
CHANGED
|
@@ -35,12 +35,13 @@
|
|
|
35
35
|
* Pure scalar combinators that preserve branding after validation.
|
|
36
36
|
*/
|
|
37
37
|
import type * as Brand from "@typeonce/ritmo/Brand";
|
|
38
|
+
import type { StandardSchema } from "@typeonce/ritmo/Descriptor";
|
|
38
39
|
import type * as Result from "@typeonce/ritmo/Result";
|
|
39
40
|
/**
|
|
40
41
|
* Finite number brand.
|
|
41
42
|
*
|
|
42
43
|
* Values of this type are guaranteed not to be `NaN`, `Infinity`, or
|
|
43
|
-
* `-Infinity` when they come from a
|
|
44
|
+
* `-Infinity` when they come from a constructor (`result`, `option`) or a `codec`. The
|
|
44
45
|
* arithmetic helpers here and in `Vector2` keep the brand without
|
|
45
46
|
* re-validating, so their results are finite only while they stay within
|
|
46
47
|
* `±Number.MAX_VALUE`: game-sized values never come close, but validate
|
|
@@ -86,27 +87,45 @@ export type InterpolationError = {
|
|
|
86
87
|
readonly start: number;
|
|
87
88
|
readonly end: number;
|
|
88
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* The constructors, guard, and schema of one scalar brand.
|
|
92
|
+
*
|
|
93
|
+
* @category Constructors
|
|
94
|
+
*/
|
|
95
|
+
export interface Constructor<Value> {
|
|
96
|
+
/** Validates one number and returns an explicit success/failure result. */
|
|
97
|
+
readonly result: (raw: number) => Result.Result<Value, Error>;
|
|
98
|
+
/** Validates one number and returns `null` on failure. */
|
|
99
|
+
readonly option: (raw: number) => Value | null;
|
|
100
|
+
/** Whether any value is a number of this brand. */
|
|
101
|
+
readonly is: (raw: unknown) => raw is Value;
|
|
102
|
+
/** The Standard Schema for `Descriptor.ConstructedComponent(...)`: the saved form is the number itself. */
|
|
103
|
+
readonly codec: StandardSchema<number, Value>;
|
|
104
|
+
}
|
|
89
105
|
/**
|
|
90
106
|
* Constructor for {@link Finite}: `result` (explicit failure), `option`
|
|
91
|
-
* (`null` on failure),
|
|
107
|
+
* (`null` on failure), `is` (a type guard), and `codec`, for
|
|
108
|
+
* `Descriptor.ConstructedComponent(Scalar.Finite.codec)`.
|
|
92
109
|
*
|
|
93
110
|
* @category Constructors
|
|
94
111
|
*/
|
|
95
|
-
export declare const Finite:
|
|
112
|
+
export declare const Finite: Constructor<Finite>;
|
|
96
113
|
/**
|
|
97
114
|
* Constructor for {@link NonNegative}: `result` (explicit failure), `option`
|
|
98
|
-
* (`null` on failure),
|
|
115
|
+
* (`null` on failure), `is` (a type guard), and `codec`, for
|
|
116
|
+
* `Descriptor.ConstructedComponent(Scalar.NonNegative.codec)`.
|
|
99
117
|
*
|
|
100
118
|
* @category Constructors
|
|
101
119
|
*/
|
|
102
|
-
export declare const NonNegative:
|
|
120
|
+
export declare const NonNegative: Constructor<NonNegative>;
|
|
103
121
|
/**
|
|
104
122
|
* Constructor for {@link Positive}: `result` (explicit failure), `option`
|
|
105
|
-
* (`null` on failure),
|
|
123
|
+
* (`null` on failure), `is` (a type guard), and `codec`, for
|
|
124
|
+
* `Descriptor.ConstructedComponent(Scalar.Positive.codec)`.
|
|
106
125
|
*
|
|
107
126
|
* @category Constructors
|
|
108
127
|
*/
|
|
109
|
-
export declare const Positive:
|
|
128
|
+
export declare const Positive: Constructor<Positive>;
|
|
110
129
|
/**
|
|
111
130
|
* Clamps one finite value between two finite bounds.
|
|
112
131
|
*
|
package/dist/Scalar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scalar.d.ts","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAC3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AACrE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,KAAK,GACb;IAAE,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"Scalar.d.ts","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAC3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AACrE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,KAAK,GACb;IAAE,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,KAAK;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC7D,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAA;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,CAAA;IAC3C,2GAA2G;IAC3G,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAC9C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,WAAW,CAAC,MAAM,CAAmB,CAAA;AAC1D;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,WAAW,CAAwB,CAAA;AACzE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAqB,CAAA;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAuB,CAAA;AACxF;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAsB,CAAA;AACzF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,KAAK,MAA0B,CAAA;AAC7G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,CACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAwB,CAAA;AACrE;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAkB,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA"}
|
package/dist/Scalar.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import * as internal from "./internal/scalar.js";
|
|
2
2
|
/**
|
|
3
3
|
* Constructor for {@link Finite}: `result` (explicit failure), `option`
|
|
4
|
-
* (`null` on failure),
|
|
4
|
+
* (`null` on failure), `is` (a type guard), and `codec`, for
|
|
5
|
+
* `Descriptor.ConstructedComponent(Scalar.Finite.codec)`.
|
|
5
6
|
*
|
|
6
7
|
* @category Constructors
|
|
7
8
|
*/
|
|
8
9
|
export const Finite = internal.Finite;
|
|
9
10
|
/**
|
|
10
11
|
* Constructor for {@link NonNegative}: `result` (explicit failure), `option`
|
|
11
|
-
* (`null` on failure),
|
|
12
|
+
* (`null` on failure), `is` (a type guard), and `codec`, for
|
|
13
|
+
* `Descriptor.ConstructedComponent(Scalar.NonNegative.codec)`.
|
|
12
14
|
*
|
|
13
15
|
* @category Constructors
|
|
14
16
|
*/
|
|
15
17
|
export const NonNegative = internal.NonNegative;
|
|
16
18
|
/**
|
|
17
19
|
* Constructor for {@link Positive}: `result` (explicit failure), `option`
|
|
18
|
-
* (`null` on failure),
|
|
20
|
+
* (`null` on failure), `is` (a type guard), and `codec`, for
|
|
21
|
+
* `Descriptor.ConstructedComponent(Scalar.Positive.codec)`.
|
|
19
22
|
*
|
|
20
23
|
* @category Constructors
|
|
21
24
|
*/
|
package/dist/Scalar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scalar.js","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"Scalar.js","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAmEhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAwB,QAAQ,CAAC,MAAM,CAAA;AAC1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAA6B,QAAQ,CAAC,WAAW,CAAA;AACzE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA0B,QAAQ,CAAC,QAAQ,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAwD,QAAQ,CAAC,KAAK,CAAA;AACxF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAA2D,QAAQ,CAAC,IAAI,CAAA;AACzF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAuE,QAAQ,CAAC,QAAQ,CAAA;AAC7G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAIyB,QAAQ,CAAC,WAAW,CAAA;AACrE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAM+B,QAAQ,CAAC,KAAK,CAAA"}
|
package/dist/Size2.d.ts
CHANGED
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
* Pure readers and raw views over already-validated size values.
|
|
32
32
|
*/
|
|
33
33
|
import type * as Brand from "@typeonce/ritmo/Brand";
|
|
34
|
+
import type { StandardSchema } from "@typeonce/ritmo/Descriptor";
|
|
34
35
|
import type * as Result from "@typeonce/ritmo/Result";
|
|
35
36
|
import type * as Scalar from "./Scalar.ts";
|
|
36
37
|
/**
|
|
@@ -62,15 +63,6 @@ export type Error = {
|
|
|
62
63
|
readonly height: Scalar.Error | null;
|
|
63
64
|
readonly input: Raw;
|
|
64
65
|
};
|
|
65
|
-
/**
|
|
66
|
-
* Failure produced by `decode` when the input does not have the raw shape.
|
|
67
|
-
*
|
|
68
|
-
* @category Size Types
|
|
69
|
-
*/
|
|
70
|
-
export type DecodeError = {
|
|
71
|
-
readonly tag: "Size2/Malformed";
|
|
72
|
-
readonly input: unknown;
|
|
73
|
-
};
|
|
74
66
|
/**
|
|
75
67
|
* Validates one raw size and returns an explicit result.
|
|
76
68
|
*
|
|
@@ -78,13 +70,20 @@ export type DecodeError = {
|
|
|
78
70
|
*/
|
|
79
71
|
export declare const result: (raw: Raw) => Result.Result<Size2, Error>;
|
|
80
72
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
73
|
+
* The codec of `Size2` (a Standard Schema, see `Descriptor.Codec`): give it to
|
|
74
|
+
* `Descriptor.ConstructedComponent(...)` so raw input and saves are validated.
|
|
75
|
+
* Its saved form is the raw shape, so it needs no `encode`. To put a `Size2`
|
|
76
|
+
* inside your own object schema, use {@link is} with your library's guard
|
|
77
|
+
* schema (`Schema.declare`, `z.custom`).
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* const Position = Descriptor.ConstructedComponent(Size2.codec)("Game/Position")
|
|
82
|
+
* ```
|
|
84
83
|
*
|
|
85
84
|
* @category Construction
|
|
86
85
|
*/
|
|
87
|
-
export declare const
|
|
86
|
+
export declare const codec: StandardSchema<Raw, Size2>;
|
|
88
87
|
/**
|
|
89
88
|
* Validates one raw size and returns `null` on failure.
|
|
90
89
|
*
|
|
@@ -92,11 +91,12 @@ export declare const decode: (raw: unknown) => Result.Result<Size2, Error | Deco
|
|
|
92
91
|
*/
|
|
93
92
|
export declare const option: (raw: Raw) => Size2 | null;
|
|
94
93
|
/**
|
|
95
|
-
*
|
|
94
|
+
* Whether any value is a valid `Size2`: a guard, also for building a
|
|
95
|
+
* `Size2` field in your own schema (`Schema.declare(Size2.is)`).
|
|
96
96
|
*
|
|
97
97
|
* @category Construction
|
|
98
98
|
*/
|
|
99
|
-
export declare const is: (raw:
|
|
99
|
+
export declare const is: (raw: unknown) => raw is Size2;
|
|
100
100
|
/**
|
|
101
101
|
* Converts one branded size back to a fresh raw object.
|
|
102
102
|
*
|
package/dist/Size2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Size2.d.ts","sourceRoot":"","sources":["../src/Size2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Size2.d.ts","sourceRoot":"","sources":["../src/Size2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAA;CACpC,EAAE,OAAO,CAAC,CAAA;AAEX;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAmB,CAAA;AAChF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAkB,CAAA;AAC/D;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,GAAG,IAAsB,CAAA;AACjE;;;;;GAKG;AACH,eAAO,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,KAAmB,CAAA;AAC7D;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,GAAoB,CAAA;AACzD;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,WAA4B,CAAA;AACxE;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,WAA6B,CAAA"}
|
package/dist/Size2.js
CHANGED
|
@@ -6,13 +6,20 @@ import * as internal from "./internal/size2.js";
|
|
|
6
6
|
*/
|
|
7
7
|
export const result = internal.result;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* The codec of `Size2` (a Standard Schema, see `Descriptor.Codec`): give it to
|
|
10
|
+
* `Descriptor.ConstructedComponent(...)` so raw input and saves are validated.
|
|
11
|
+
* Its saved form is the raw shape, so it needs no `encode`. To put a `Size2`
|
|
12
|
+
* inside your own object schema, use {@link is} with your library's guard
|
|
13
|
+
* schema (`Schema.declare`, `z.custom`).
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const Position = Descriptor.ConstructedComponent(Size2.codec)("Game/Position")
|
|
18
|
+
* ```
|
|
12
19
|
*
|
|
13
20
|
* @category Construction
|
|
14
21
|
*/
|
|
15
|
-
export const
|
|
22
|
+
export const codec = internal.codec;
|
|
16
23
|
/**
|
|
17
24
|
* Validates one raw size and returns `null` on failure.
|
|
18
25
|
*
|
|
@@ -20,7 +27,8 @@ export const decode = internal.decode;
|
|
|
20
27
|
*/
|
|
21
28
|
export const option = internal.option;
|
|
22
29
|
/**
|
|
23
|
-
*
|
|
30
|
+
* Whether any value is a valid `Size2`: a guard, also for building a
|
|
31
|
+
* `Size2` field in your own schema (`Schema.declare(Size2.is)`).
|
|
24
32
|
*
|
|
25
33
|
* @category Construction
|
|
26
34
|
*/
|
package/dist/Size2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Size2.js","sourceRoot":"","sources":["../src/Size2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Size2.js","sourceRoot":"","sources":["../src/Size2.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAoC/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAA8C,QAAQ,CAAC,MAAM,CAAA;AAChF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,KAAK,GAA+B,QAAQ,CAAC,KAAK,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAA+B,QAAQ,CAAC,MAAM,CAAA;AACjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,EAAE,GAAmC,QAAQ,CAAC,EAAE,CAAA;AAC7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAyB,QAAQ,CAAC,KAAK,CAAA;AACzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAwC,QAAQ,CAAC,KAAK,CAAA;AACxE;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAwC,QAAQ,CAAC,MAAM,CAAA"}
|
package/dist/Vector2.d.ts
CHANGED
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
* Immutable vector math and normalization helpers on already-validated values.
|
|
37
37
|
*/
|
|
38
38
|
import type * as Brand from "@typeonce/ritmo/Brand";
|
|
39
|
+
import type { StandardSchema } from "@typeonce/ritmo/Descriptor";
|
|
39
40
|
import type * as Result from "@typeonce/ritmo/Result";
|
|
40
41
|
import type * as Scalar from "./Scalar.ts";
|
|
41
42
|
/**
|
|
@@ -67,15 +68,6 @@ export type Error = {
|
|
|
67
68
|
readonly y: Scalar.Error | null;
|
|
68
69
|
readonly input: Raw;
|
|
69
70
|
};
|
|
70
|
-
/**
|
|
71
|
-
* Failure produced by `decode` when the input does not have the raw shape.
|
|
72
|
-
*
|
|
73
|
-
* @category Vector Types
|
|
74
|
-
*/
|
|
75
|
-
export type DecodeError = {
|
|
76
|
-
readonly tag: "Vector2/Malformed";
|
|
77
|
-
readonly input: unknown;
|
|
78
|
-
};
|
|
79
71
|
/**
|
|
80
72
|
* Explicit failure produced when a zero-length vector cannot be normalized.
|
|
81
73
|
*
|
|
@@ -96,13 +88,20 @@ export type NormalizeError = {
|
|
|
96
88
|
*/
|
|
97
89
|
export declare const result: (raw: Raw) => Result.Result<Vector2, Error>;
|
|
98
90
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
91
|
+
* The codec of `Vector2` (a Standard Schema, see `Descriptor.Codec`): give it to
|
|
92
|
+
* `Descriptor.ConstructedComponent(...)` so raw input and saves are validated.
|
|
93
|
+
* Its saved form is the raw shape, so it needs no `encode`. To put a `Vector2`
|
|
94
|
+
* inside your own object schema, use {@link is} with your library's guard
|
|
95
|
+
* schema (`Schema.declare`, `z.custom`).
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* const Position = Descriptor.ConstructedComponent(Vector2.codec)("Game/Position")
|
|
100
|
+
* ```
|
|
102
101
|
*
|
|
103
102
|
* @category Construction
|
|
104
103
|
*/
|
|
105
|
-
export declare const
|
|
104
|
+
export declare const codec: StandardSchema<Raw, Vector2>;
|
|
106
105
|
/**
|
|
107
106
|
* Validates one raw vector and returns `null` on failure.
|
|
108
107
|
*
|
|
@@ -110,11 +109,12 @@ export declare const decode: (raw: unknown) => Result.Result<Vector2, Error | De
|
|
|
110
109
|
*/
|
|
111
110
|
export declare const option: (raw: Raw) => Vector2 | null;
|
|
112
111
|
/**
|
|
113
|
-
*
|
|
112
|
+
* Whether any value is a valid `Vector2`: a guard, also for building a
|
|
113
|
+
* `Vector2` field in your own schema (`Schema.declare(Vector2.is)`).
|
|
114
114
|
*
|
|
115
115
|
* @category Construction
|
|
116
116
|
*/
|
|
117
|
-
export declare const is: (raw:
|
|
117
|
+
export declare const is: (raw: unknown) => raw is Vector2;
|
|
118
118
|
/**
|
|
119
119
|
* Converts one branded vector back to a fresh raw object.
|
|
120
120
|
*
|
package/dist/Vector2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"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"}
|