nucleation 0.10.22 → 0.10.24
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/README.md +12 -0
- package/Schematic.d.mts +23 -0
- package/Schematic.d.ts +23 -0
- package/Schematic.mjs +70 -0
- package/nucleation.wasm +0 -0
- package/package.json +7 -2
- package/renderer/AnimationEffect.d.mts +44 -0
- package/renderer/AnimationEffect.d.ts +44 -0
- package/renderer/AnimationEffect.mjs +204 -0
- package/renderer/Autostack.d.mts +43 -0
- package/renderer/Autostack.d.ts +43 -0
- package/renderer/Autostack.mjs +134 -0
- package/renderer/BlockPos.d.mts +28 -0
- package/renderer/BlockPos.d.ts +28 -0
- package/renderer/BlockPos.mjs +130 -0
- package/renderer/BlockState.d.mts +39 -0
- package/renderer/BlockState.d.ts +39 -0
- package/renderer/BlockState.mjs +134 -0
- package/renderer/Blocks.d.mts +91 -0
- package/renderer/Blocks.d.ts +91 -0
- package/renderer/Blocks.mjs +308 -0
- package/renderer/Brush.d.mts +99 -0
- package/renderer/Brush.d.ts +99 -0
- package/renderer/Brush.mjs +335 -0
- package/renderer/BuildAnimation.d.mts +179 -0
- package/renderer/BuildAnimation.d.ts +179 -0
- package/renderer/BuildAnimation.mjs +1148 -0
- package/renderer/BuildingTool.d.mts +46 -0
- package/renderer/BuildingTool.d.ts +46 -0
- package/renderer/BuildingTool.mjs +121 -0
- package/renderer/CellExecutor.d.mts +51 -0
- package/renderer/CellExecutor.d.ts +51 -0
- package/renderer/CellExecutor.mjs +171 -0
- package/renderer/CellularSdfConfig.d.mts +22 -0
- package/renderer/CellularSdfConfig.d.ts +22 -0
- package/renderer/CellularSdfConfig.mjs +69 -0
- package/renderer/ChunkMeshResult.d.mts +75 -0
- package/renderer/ChunkMeshResult.d.ts +75 -0
- package/renderer/ChunkMeshResult.mjs +253 -0
- package/renderer/CircuitBuilder.d.mts +118 -0
- package/renderer/CircuitBuilder.d.ts +118 -0
- package/renderer/CircuitBuilder.mjs +516 -0
- package/renderer/Curve3D.d.mts +27 -0
- package/renderer/Curve3D.d.ts +27 -0
- package/renderer/Curve3D.mjs +101 -0
- package/renderer/DefinitionRegion.d.mts +274 -0
- package/renderer/DefinitionRegion.d.ts +274 -0
- package/renderer/DefinitionRegion.mjs +973 -0
- package/renderer/Design.d.mts +348 -0
- package/renderer/Design.d.ts +348 -0
- package/renderer/Design.mjs +1334 -0
- package/renderer/Diff.d.mts +88 -0
- package/renderer/Diff.d.ts +88 -0
- package/renderer/Diff.mjs +316 -0
- package/renderer/Dimensions.d.mts +28 -0
- package/renderer/Dimensions.d.ts +28 -0
- package/renderer/Dimensions.mjs +130 -0
- package/renderer/DistanceField.d.mts +39 -0
- package/renderer/DistanceField.d.ts +39 -0
- package/renderer/DistanceField.mjs +114 -0
- package/renderer/ExecutionMode.d.mts +42 -0
- package/renderer/ExecutionMode.d.ts +42 -0
- package/renderer/ExecutionMode.mjs +127 -0
- package/renderer/Field3.d.mts +40 -0
- package/renderer/Field3.d.ts +40 -0
- package/renderer/Field3.mjs +160 -0
- package/renderer/FieldProgram.d.mts +40 -0
- package/renderer/FieldProgram.d.ts +40 -0
- package/renderer/FieldProgram.mjs +167 -0
- package/renderer/FieldProgramBinaryOp.d.mts +42 -0
- package/renderer/FieldProgramBinaryOp.d.ts +42 -0
- package/renderer/FieldProgramBinaryOp.mjs +118 -0
- package/renderer/FieldProgramBuilder.d.mts +104 -0
- package/renderer/FieldProgramBuilder.d.ts +104 -0
- package/renderer/FieldProgramBuilder.mjs +486 -0
- package/renderer/FieldProgramDistanceKind.d.mts +26 -0
- package/renderer/FieldProgramDistanceKind.d.ts +26 -0
- package/renderer/FieldProgramDistanceKind.mjs +78 -0
- package/renderer/FieldProgramUnaryOp.d.mts +34 -0
- package/renderer/FieldProgramUnaryOp.d.ts +34 -0
- package/renderer/FieldProgramUnaryOp.mjs +102 -0
- package/renderer/FieldProgramValueType.d.mts +25 -0
- package/renderer/FieldProgramValueType.d.ts +25 -0
- package/renderer/FieldProgramValueType.mjs +75 -0
- package/renderer/FieldRange.d.mts +15 -0
- package/renderer/FieldRange.d.ts +15 -0
- package/renderer/FieldRange.mjs +109 -0
- package/renderer/Fingerprint.d.mts +44 -0
- package/renderer/Fingerprint.d.ts +44 -0
- package/renderer/Fingerprint.mjs +197 -0
- package/renderer/GeneratedChunk.d.mts +35 -0
- package/renderer/GeneratedChunk.d.ts +35 -0
- package/renderer/GeneratedChunk.mjs +178 -0
- package/renderer/GeneratedChunkCoverage.d.mts +25 -0
- package/renderer/GeneratedChunkCoverage.d.ts +25 -0
- package/renderer/GeneratedChunkCoverage.mjs +75 -0
- package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
- package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
- package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
- package/renderer/GeneratedWorldStream.d.mts +28 -0
- package/renderer/GeneratedWorldStream.d.ts +28 -0
- package/renderer/GeneratedWorldStream.mjs +86 -0
- package/renderer/Geo.d.mts +41 -0
- package/renderer/Geo.d.ts +41 -0
- package/renderer/Geo.mjs +121 -0
- package/renderer/Hdl.d.mts +56 -0
- package/renderer/Hdl.d.ts +56 -0
- package/renderer/Hdl.mjs +163 -0
- package/renderer/InterpolationSpace.d.mts +25 -0
- package/renderer/InterpolationSpace.d.ts +25 -0
- package/renderer/InterpolationSpace.mjs +73 -0
- package/renderer/IoLayout.d.mts +26 -0
- package/renderer/IoLayout.d.ts +26 -0
- package/renderer/IoLayout.mjs +81 -0
- package/renderer/IoLayoutBuilder.d.mts +73 -0
- package/renderer/IoLayoutBuilder.d.ts +73 -0
- package/renderer/IoLayoutBuilder.mjs +315 -0
- package/renderer/IoType.d.mts +41 -0
- package/renderer/IoType.d.ts +41 -0
- package/renderer/IoType.mjs +125 -0
- package/renderer/ItemModelConfig.d.mts +65 -0
- package/renderer/ItemModelConfig.d.ts +65 -0
- package/renderer/ItemModelConfig.mjs +223 -0
- package/renderer/ItemModelPackBuilder.d.mts +32 -0
- package/renderer/ItemModelPackBuilder.d.ts +32 -0
- package/renderer/ItemModelPackBuilder.mjs +104 -0
- package/renderer/ItemModelResult.d.mts +72 -0
- package/renderer/ItemModelResult.d.ts +72 -0
- package/renderer/ItemModelResult.mjs +268 -0
- package/renderer/ItemScale.d.mts +31 -0
- package/renderer/ItemScale.d.ts +31 -0
- package/renderer/ItemScale.mjs +133 -0
- package/renderer/LayoutFunction.d.mts +52 -0
- package/renderer/LayoutFunction.d.ts +52 -0
- package/renderer/LayoutFunction.mjs +159 -0
- package/renderer/MchprsWorld.d.mts +131 -0
- package/renderer/MchprsWorld.d.ts +131 -0
- package/renderer/MchprsWorld.mjs +423 -0
- package/renderer/MeshBounds.d.mts +40 -0
- package/renderer/MeshBounds.d.ts +40 -0
- package/renderer/MeshBounds.mjs +181 -0
- package/renderer/MeshConfig.d.mts +101 -0
- package/renderer/MeshConfig.d.ts +101 -0
- package/renderer/MeshConfig.mjs +306 -0
- package/renderer/MeshJob.d.mts +44 -0
- package/renderer/MeshJob.d.ts +44 -0
- package/renderer/MeshJob.mjs +116 -0
- package/renderer/MeshPhase.d.mts +38 -0
- package/renderer/MeshPhase.d.ts +38 -0
- package/renderer/MeshPhase.mjs +90 -0
- package/renderer/MeshProgress.d.mts +32 -0
- package/renderer/MeshProgress.d.ts +32 -0
- package/renderer/MeshProgress.mjs +134 -0
- package/renderer/MeshResult.d.mts +76 -0
- package/renderer/MeshResult.d.ts +76 -0
- package/renderer/MeshResult.mjs +269 -0
- package/renderer/MultiMeshResult.d.mts +50 -0
- package/renderer/MultiMeshResult.d.ts +50 -0
- package/renderer/MultiMeshResult.mjs +166 -0
- package/renderer/Nbt.d.mts +50 -0
- package/renderer/Nbt.d.ts +50 -0
- package/renderer/Nbt.mjs +161 -0
- package/renderer/NucleationError.d.mts +53 -0
- package/renderer/NucleationError.d.ts +53 -0
- package/renderer/NucleationError.mjs +136 -0
- package/renderer/OutputCondition.d.mts +45 -0
- package/renderer/OutputCondition.d.ts +45 -0
- package/renderer/OutputCondition.mjs +129 -0
- package/renderer/Palette.d.mts +157 -0
- package/renderer/Palette.d.ts +157 -0
- package/renderer/Palette.mjs +487 -0
- package/renderer/PaletteBuilder.d.mts +119 -0
- package/renderer/PaletteBuilder.d.ts +119 -0
- package/renderer/PaletteBuilder.mjs +457 -0
- package/renderer/README.md +67 -0
- package/renderer/RawMeshExport.d.mts +74 -0
- package/renderer/RawMeshExport.d.ts +74 -0
- package/renderer/RawMeshExport.mjs +243 -0
- package/renderer/RedstoneGraph.d.mts +58 -0
- package/renderer/RedstoneGraph.d.ts +58 -0
- package/renderer/RedstoneGraph.mjs +242 -0
- package/renderer/RegionBounds.d.mts +41 -0
- package/renderer/RegionBounds.d.ts +41 -0
- package/renderer/RegionBounds.mjs +182 -0
- package/renderer/RenderConfig.d.mts +101 -0
- package/renderer/RenderConfig.d.ts +101 -0
- package/renderer/RenderConfig.mjs +271 -0
- package/renderer/Renderer.d.mts +51 -0
- package/renderer/Renderer.d.ts +51 -0
- package/renderer/Renderer.mjs +219 -0
- package/renderer/ResourcePack.d.mts +105 -0
- package/renderer/ResourcePack.d.ts +105 -0
- package/renderer/ResourcePack.mjs +447 -0
- package/renderer/ResourcePackList.d.mts +32 -0
- package/renderer/ResourcePackList.d.ts +32 -0
- package/renderer/ResourcePackList.mjs +96 -0
- package/renderer/Routing.d.mts +66 -0
- package/renderer/Routing.d.ts +66 -0
- package/renderer/Routing.mjs +220 -0
- package/renderer/Schematic.d.mts +977 -0
- package/renderer/Schematic.d.ts +977 -0
- package/renderer/Schematic.mjs +3820 -0
- package/renderer/SchematicBuilder.d.mts +103 -0
- package/renderer/SchematicBuilder.d.ts +103 -0
- package/renderer/SchematicBuilder.mjs +401 -0
- package/renderer/SchematicRegions.d.mts +93 -0
- package/renderer/SchematicRegions.d.ts +93 -0
- package/renderer/SchematicRegions.mjs +411 -0
- package/renderer/SchematicSplitResult.d.mts +26 -0
- package/renderer/SchematicSplitResult.d.ts +26 -0
- package/renderer/SchematicSplitResult.mjs +84 -0
- package/renderer/Scripting.d.mts +40 -0
- package/renderer/Scripting.d.ts +40 -0
- package/renderer/Scripting.mjs +138 -0
- package/renderer/Sdf.d.mts +234 -0
- package/renderer/Sdf.d.ts +234 -0
- package/renderer/Sdf.mjs +1234 -0
- package/renderer/SdfAxis.d.mts +25 -0
- package/renderer/SdfAxis.d.ts +25 -0
- package/renderer/SdfAxis.mjs +75 -0
- package/renderer/SdfBounds.d.mts +19 -0
- package/renderer/SdfBounds.d.ts +19 -0
- package/renderer/SdfBounds.mjs +161 -0
- package/renderer/SdfCellMode.d.mts +26 -0
- package/renderer/SdfCellMode.d.ts +26 -0
- package/renderer/SdfCellMode.mjs +78 -0
- package/renderer/SdfNormal.d.mts +16 -0
- package/renderer/SdfNormal.d.ts +16 -0
- package/renderer/SdfNormal.mjs +122 -0
- package/renderer/Shape.d.mts +143 -0
- package/renderer/Shape.d.ts +143 -0
- package/renderer/Shape.mjs +458 -0
- package/renderer/SortStrategy.d.mts +86 -0
- package/renderer/SortStrategy.d.ts +86 -0
- package/renderer/SortStrategy.mjs +272 -0
- package/renderer/Store.d.mts +83 -0
- package/renderer/Store.d.ts +83 -0
- package/renderer/Store.mjs +369 -0
- package/renderer/StoreIo.d.mts +71 -0
- package/renderer/StoreIo.d.ts +71 -0
- package/renderer/StoreIo.mjs +292 -0
- package/renderer/TextureAtlas.d.mts +40 -0
- package/renderer/TextureAtlas.d.ts +40 -0
- package/renderer/TextureAtlas.mjs +122 -0
- package/renderer/TextureInfo.d.mts +34 -0
- package/renderer/TextureInfo.d.ts +34 -0
- package/renderer/TextureInfo.mjs +149 -0
- package/renderer/TickSettleMode.d.mts +34 -0
- package/renderer/TickSettleMode.d.ts +34 -0
- package/renderer/TickSettleMode.mjs +84 -0
- package/renderer/TickSimulation.d.mts +572 -0
- package/renderer/TickSimulation.d.ts +572 -0
- package/renderer/TickSimulation.mjs +1299 -0
- package/renderer/TypedCircuitExecutor.d.mts +101 -0
- package/renderer/TypedCircuitExecutor.d.ts +101 -0
- package/renderer/TypedCircuitExecutor.mjs +378 -0
- package/renderer/Value.d.mts +73 -0
- package/renderer/Value.d.ts +73 -0
- package/renderer/Value.mjs +275 -0
- package/renderer/VideoConfig.d.mts +15 -0
- package/renderer/VideoConfig.d.ts +15 -0
- package/renderer/VideoConfig.mjs +44 -0
- package/renderer/VoxelModel.d.mts +34 -0
- package/renderer/VoxelModel.d.ts +34 -0
- package/renderer/VoxelModel.mjs +113 -0
- package/renderer/Voxelizer.d.mts +80 -0
- package/renderer/Voxelizer.d.ts +80 -0
- package/renderer/Voxelizer.mjs +261 -0
- package/renderer/WorldChunkView.d.mts +75 -0
- package/renderer/WorldChunkView.d.ts +75 -0
- package/renderer/WorldChunkView.mjs +224 -0
- package/renderer/WorldGenerator.d.mts +75 -0
- package/renderer/WorldGenerator.d.ts +75 -0
- package/renderer/WorldGenerator.mjs +255 -0
- package/renderer/WorldSink.d.mts +50 -0
- package/renderer/WorldSink.d.ts +50 -0
- package/renderer/WorldSink.mjs +177 -0
- package/renderer/WorldStream.d.mts +45 -0
- package/renderer/WorldStream.d.ts +45 -0
- package/renderer/WorldStream.mjs +184 -0
- package/renderer/WsPartitionHints.d.mts +29 -0
- package/renderer/WsPartitionHints.d.ts +29 -0
- package/renderer/WsPartitionHints.mjs +102 -0
- package/renderer/WsProfile.d.mts +46 -0
- package/renderer/WsProfile.d.ts +46 -0
- package/renderer/WsProfile.mjs +152 -0
- package/renderer/WsRunResult.d.mts +83 -0
- package/renderer/WsRunResult.d.ts +83 -0
- package/renderer/WsRunResult.mjs +326 -0
- package/renderer/WsSegmentJob.d.mts +28 -0
- package/renderer/WsSegmentJob.d.ts +28 -0
- package/renderer/WsSegmentJob.mjs +81 -0
- package/renderer/diplomat-runtime.d.mts +15 -0
- package/renderer/diplomat-runtime.d.ts +15 -0
- package/renderer/diplomat-runtime.mjs +779 -0
- package/renderer/diplomat-wasm.mjs +52 -0
- package/renderer/diplomat.config.mjs +5 -0
- package/renderer/index.d.mts +193 -0
- package/renderer/index.d.ts +193 -0
- package/renderer/index.mjs +196 -0
- package/renderer/nucleation.wasm +0 -0
- package/renderer/veneer/design.d.ts +167 -0
- package/renderer/veneer/design.mjs +480 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { ExecutionMode } from "./ExecutionMode.mjs"
|
|
3
|
+
import type { IoLayout } from "./IoLayout.mjs"
|
|
4
|
+
import type { MchprsWorld } from "./MchprsWorld.mjs"
|
|
5
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
7
|
+
import type { Value } from "./Value.mjs"
|
|
8
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A typed circuit executor. Wraps
|
|
14
|
+
* {@link crate::simulation::typed_executor::TypedCircuitExecutor}.
|
|
15
|
+
*/
|
|
16
|
+
export class TypedCircuitExecutor {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get ffiValue(): pointer;
|
|
19
|
+
/** @internal */
|
|
20
|
+
constructor();
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Create from a world and layout. Builds a fresh world from the
|
|
25
|
+
* world's schematic (matches the old ABI, which cloned internally).
|
|
26
|
+
*/
|
|
27
|
+
static fromLayout(world: MchprsWorld, layout: IoLayout): TypedCircuitExecutor;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Create from a world and layout with simulation options.
|
|
31
|
+
*/
|
|
32
|
+
static fromLayoutWithOptions(world: MchprsWorld, layout: IoLayout, optimize: boolean, ioOnly: boolean): TypedCircuitExecutor;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Create from Insign annotations in a schematic.
|
|
36
|
+
*/
|
|
37
|
+
static fromInsign(schematic: Schematic): TypedCircuitExecutor;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create from Insign annotations with options.
|
|
41
|
+
*/
|
|
42
|
+
static fromInsignWithOptions(schematic: Schematic, optimize: boolean, ioOnly: boolean): TypedCircuitExecutor;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Set the state mode ("stateless" | "stateful" | "manual").
|
|
46
|
+
*/
|
|
47
|
+
setStateMode(mode: string): void;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Reset the executor to its initial state.
|
|
51
|
+
*/
|
|
52
|
+
reset(): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Advance the simulation by `ticks` ticks.
|
|
56
|
+
*/
|
|
57
|
+
tick(ticks: number): void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Flush pending changes.
|
|
61
|
+
*/
|
|
62
|
+
flush(): void;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Set a single input value.
|
|
66
|
+
*/
|
|
67
|
+
setInput(name: string, value: Value): void;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Read a single output value.
|
|
71
|
+
*/
|
|
72
|
+
readOutput(name: string): Value;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Execute the circuit. `inputs_json` is a JSON object like
|
|
76
|
+
* `{"input_name": {"type": "u32", "value": 42}}`; writes a JSON
|
|
77
|
+
* object with `outputs`, `ticks_elapsed` and `condition_met`.
|
|
78
|
+
*/
|
|
79
|
+
execute(inputsJson: string, mode: ExecutionMode): string;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Input names as a JSON array string.
|
|
83
|
+
*/
|
|
84
|
+
inputNamesJson(): string;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Output names as a JSON array string.
|
|
88
|
+
*/
|
|
89
|
+
outputNamesJson(): string;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Layout info as a JSON object string
|
|
93
|
+
* (old ABI: `typed_executor_get_layout_info`).
|
|
94
|
+
*/
|
|
95
|
+
layoutInfoJson(): string;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Sync the simulation state and return the schematic (cloned).
|
|
99
|
+
*/
|
|
100
|
+
syncToSchematic(): Schematic;
|
|
101
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { ExecutionMode } from "./ExecutionMode.mjs"
|
|
3
|
+
import type { IoLayout } from "./IoLayout.mjs"
|
|
4
|
+
import type { MchprsWorld } from "./MchprsWorld.mjs"
|
|
5
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
7
|
+
import type { Value } from "./Value.mjs"
|
|
8
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A typed circuit executor. Wraps
|
|
14
|
+
* {@link crate::simulation::typed_executor::TypedCircuitExecutor}.
|
|
15
|
+
*/
|
|
16
|
+
export class TypedCircuitExecutor {
|
|
17
|
+
/** @internal */
|
|
18
|
+
get ffiValue(): pointer;
|
|
19
|
+
/** @internal */
|
|
20
|
+
constructor();
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Create from a world and layout. Builds a fresh world from the
|
|
25
|
+
* world's schematic (matches the old ABI, which cloned internally).
|
|
26
|
+
*/
|
|
27
|
+
static fromLayout(world: MchprsWorld, layout: IoLayout): TypedCircuitExecutor;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Create from a world and layout with simulation options.
|
|
31
|
+
*/
|
|
32
|
+
static fromLayoutWithOptions(world: MchprsWorld, layout: IoLayout, optimize: boolean, ioOnly: boolean): TypedCircuitExecutor;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Create from Insign annotations in a schematic.
|
|
36
|
+
*/
|
|
37
|
+
static fromInsign(schematic: Schematic): TypedCircuitExecutor;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create from Insign annotations with options.
|
|
41
|
+
*/
|
|
42
|
+
static fromInsignWithOptions(schematic: Schematic, optimize: boolean, ioOnly: boolean): TypedCircuitExecutor;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Set the state mode ("stateless" | "stateful" | "manual").
|
|
46
|
+
*/
|
|
47
|
+
setStateMode(mode: string): void;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Reset the executor to its initial state.
|
|
51
|
+
*/
|
|
52
|
+
reset(): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Advance the simulation by `ticks` ticks.
|
|
56
|
+
*/
|
|
57
|
+
tick(ticks: number): void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Flush pending changes.
|
|
61
|
+
*/
|
|
62
|
+
flush(): void;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Set a single input value.
|
|
66
|
+
*/
|
|
67
|
+
setInput(name: string, value: Value): void;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Read a single output value.
|
|
71
|
+
*/
|
|
72
|
+
readOutput(name: string): Value;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Execute the circuit. `inputs_json` is a JSON object like
|
|
76
|
+
* `{"input_name": {"type": "u32", "value": 42}}`; writes a JSON
|
|
77
|
+
* object with `outputs`, `ticks_elapsed` and `condition_met`.
|
|
78
|
+
*/
|
|
79
|
+
execute(inputsJson: string, mode: ExecutionMode): string;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Input names as a JSON array string.
|
|
83
|
+
*/
|
|
84
|
+
inputNamesJson(): string;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Output names as a JSON array string.
|
|
88
|
+
*/
|
|
89
|
+
outputNamesJson(): string;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Layout info as a JSON object string
|
|
93
|
+
* (old ABI: `typed_executor_get_layout_info`).
|
|
94
|
+
*/
|
|
95
|
+
layoutInfoJson(): string;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Sync the simulation state and return the schematic (cloned).
|
|
99
|
+
*/
|
|
100
|
+
syncToSchematic(): Schematic;
|
|
101
|
+
}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { ExecutionMode } from "./ExecutionMode.mjs"
|
|
3
|
+
import { IoLayout } from "./IoLayout.mjs"
|
|
4
|
+
import { MchprsWorld } from "./MchprsWorld.mjs"
|
|
5
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import { Schematic } from "./Schematic.mjs"
|
|
7
|
+
import { Value } from "./Value.mjs"
|
|
8
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
9
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
10
|
+
|
|
11
|
+
const TypedCircuitExecutor_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
12
|
+
wasm.TypedCircuitExecutor_destroy(ptr);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A typed circuit executor. Wraps
|
|
17
|
+
* {@link crate::simulation::typed_executor::TypedCircuitExecutor}.
|
|
18
|
+
*/
|
|
19
|
+
export class TypedCircuitExecutor {
|
|
20
|
+
// Internal ptr reference:
|
|
21
|
+
#ptr = null;
|
|
22
|
+
|
|
23
|
+
// Lifetimes are only to keep dependencies alive.
|
|
24
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
25
|
+
#selfEdge = [];
|
|
26
|
+
|
|
27
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
28
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
29
|
+
console.error("TypedCircuitExecutor is an Opaque type. You cannot call its constructor.");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.#ptr = ptr;
|
|
33
|
+
this.#selfEdge = selfEdge;
|
|
34
|
+
|
|
35
|
+
// Are we being borrowed? If not, we can register.
|
|
36
|
+
if (this.#selfEdge.length === 0) {
|
|
37
|
+
TypedCircuitExecutor_box_destroy_registry.register(this, this.#ptr);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/** @internal */
|
|
43
|
+
get ffiValue() {
|
|
44
|
+
return this.#ptr;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Create from a world and layout. Builds a fresh world from the
|
|
50
|
+
* world's schematic (matches the old ABI, which cloned internally).
|
|
51
|
+
*/
|
|
52
|
+
static fromLayout(world, layout) {
|
|
53
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
const result = wasm.TypedCircuitExecutor_from_layout(diplomatReceive.buffer, world.ffiValue, layout.ffiValue);
|
|
57
|
+
|
|
58
|
+
try {
|
|
59
|
+
if (!diplomatReceive.resultFlag) {
|
|
60
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
61
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
62
|
+
}
|
|
63
|
+
return new TypedCircuitExecutor(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
finally {
|
|
67
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
68
|
+
diplomatReceive.free();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Create from a world and layout with simulation options.
|
|
74
|
+
*/
|
|
75
|
+
static fromLayoutWithOptions(world, layout, optimize, ioOnly) {
|
|
76
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
const result = wasm.TypedCircuitExecutor_from_layout_with_options(diplomatReceive.buffer, world.ffiValue, layout.ffiValue, optimize, ioOnly);
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
if (!diplomatReceive.resultFlag) {
|
|
83
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
84
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
85
|
+
}
|
|
86
|
+
return new TypedCircuitExecutor(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
finally {
|
|
90
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
91
|
+
diplomatReceive.free();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Create from Insign annotations in a schematic.
|
|
97
|
+
*/
|
|
98
|
+
static fromInsign(schematic) {
|
|
99
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
const result = wasm.TypedCircuitExecutor_from_insign(diplomatReceive.buffer, schematic.ffiValue);
|
|
103
|
+
|
|
104
|
+
try {
|
|
105
|
+
if (!diplomatReceive.resultFlag) {
|
|
106
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
107
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
108
|
+
}
|
|
109
|
+
return new TypedCircuitExecutor(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
finally {
|
|
113
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
114
|
+
diplomatReceive.free();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Create from Insign annotations with options.
|
|
120
|
+
*/
|
|
121
|
+
static fromInsignWithOptions(schematic, optimize, ioOnly) {
|
|
122
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
const result = wasm.TypedCircuitExecutor_from_insign_with_options(diplomatReceive.buffer, schematic.ffiValue, optimize, ioOnly);
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
if (!diplomatReceive.resultFlag) {
|
|
129
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
130
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
131
|
+
}
|
|
132
|
+
return new TypedCircuitExecutor(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
finally {
|
|
136
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
137
|
+
diplomatReceive.free();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Set the state mode ("stateless" | "stateful" | "manual").
|
|
143
|
+
*/
|
|
144
|
+
setStateMode(mode) {
|
|
145
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
146
|
+
|
|
147
|
+
const modeSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, mode)));
|
|
148
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
const result = wasm.TypedCircuitExecutor_set_state_mode(diplomatReceive.buffer, this.ffiValue, modeSlice.ptr);
|
|
152
|
+
|
|
153
|
+
try {
|
|
154
|
+
if (!diplomatReceive.resultFlag) {
|
|
155
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
156
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
finally {
|
|
161
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
162
|
+
functionCleanupArena.free();
|
|
163
|
+
|
|
164
|
+
diplomatReceive.free();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Reset the executor to its initial state.
|
|
170
|
+
*/
|
|
171
|
+
reset() {
|
|
172
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
const result = wasm.TypedCircuitExecutor_reset(diplomatReceive.buffer, this.ffiValue);
|
|
176
|
+
|
|
177
|
+
try {
|
|
178
|
+
if (!diplomatReceive.resultFlag) {
|
|
179
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
180
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
finally {
|
|
185
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
186
|
+
diplomatReceive.free();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Advance the simulation by `ticks` ticks.
|
|
192
|
+
*/
|
|
193
|
+
tick(ticks) {
|
|
194
|
+
wasm.TypedCircuitExecutor_tick(this.ffiValue, ticks);
|
|
195
|
+
|
|
196
|
+
try {}
|
|
197
|
+
|
|
198
|
+
finally {
|
|
199
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Flush pending changes.
|
|
205
|
+
*/
|
|
206
|
+
flush() {
|
|
207
|
+
wasm.TypedCircuitExecutor_flush(this.ffiValue);
|
|
208
|
+
|
|
209
|
+
try {}
|
|
210
|
+
|
|
211
|
+
finally {
|
|
212
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Set a single input value.
|
|
218
|
+
*/
|
|
219
|
+
setInput(name, value) {
|
|
220
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
221
|
+
|
|
222
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
223
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
const result = wasm.TypedCircuitExecutor_set_input(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, value.ffiValue);
|
|
227
|
+
|
|
228
|
+
try {
|
|
229
|
+
if (!diplomatReceive.resultFlag) {
|
|
230
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
231
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
finally {
|
|
236
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
237
|
+
functionCleanupArena.free();
|
|
238
|
+
|
|
239
|
+
diplomatReceive.free();
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Read a single output value.
|
|
245
|
+
*/
|
|
246
|
+
readOutput(name) {
|
|
247
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
248
|
+
|
|
249
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
250
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
const result = wasm.TypedCircuitExecutor_read_output(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr);
|
|
254
|
+
|
|
255
|
+
try {
|
|
256
|
+
if (!diplomatReceive.resultFlag) {
|
|
257
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
258
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
259
|
+
}
|
|
260
|
+
return new Value(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
finally {
|
|
264
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
265
|
+
functionCleanupArena.free();
|
|
266
|
+
|
|
267
|
+
diplomatReceive.free();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Execute the circuit. `inputs_json` is a JSON object like
|
|
273
|
+
* `{"input_name": {"type": "u32", "value": 42}}`; writes a JSON
|
|
274
|
+
* object with `outputs`, `ticks_elapsed` and `condition_met`.
|
|
275
|
+
*/
|
|
276
|
+
execute(inputsJson, mode) {
|
|
277
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
278
|
+
|
|
279
|
+
const inputsJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, inputsJson)));
|
|
280
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
281
|
+
|
|
282
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
const result = wasm.TypedCircuitExecutor_execute(diplomatReceive.buffer, this.ffiValue, inputsJsonSlice.ptr, mode.ffiValue, write.buffer);
|
|
286
|
+
|
|
287
|
+
try {
|
|
288
|
+
if (!diplomatReceive.resultFlag) {
|
|
289
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
290
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
291
|
+
}
|
|
292
|
+
return write.readString8();
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
finally {
|
|
296
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
297
|
+
functionCleanupArena.free();
|
|
298
|
+
|
|
299
|
+
diplomatReceive.free();
|
|
300
|
+
write.free();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Input names as a JSON array string.
|
|
306
|
+
*/
|
|
307
|
+
inputNamesJson() {
|
|
308
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
309
|
+
|
|
310
|
+
wasm.TypedCircuitExecutor_input_names_json(this.ffiValue, write.buffer);
|
|
311
|
+
|
|
312
|
+
try {
|
|
313
|
+
return write.readString8();
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
finally {
|
|
317
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
318
|
+
write.free();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Output names as a JSON array string.
|
|
324
|
+
*/
|
|
325
|
+
outputNamesJson() {
|
|
326
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
327
|
+
|
|
328
|
+
wasm.TypedCircuitExecutor_output_names_json(this.ffiValue, write.buffer);
|
|
329
|
+
|
|
330
|
+
try {
|
|
331
|
+
return write.readString8();
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
finally {
|
|
335
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
336
|
+
write.free();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Layout info as a JSON object string
|
|
342
|
+
* (old ABI: `typed_executor_get_layout_info`).
|
|
343
|
+
*/
|
|
344
|
+
layoutInfoJson() {
|
|
345
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
346
|
+
|
|
347
|
+
wasm.TypedCircuitExecutor_layout_info_json(this.ffiValue, write.buffer);
|
|
348
|
+
|
|
349
|
+
try {
|
|
350
|
+
return write.readString8();
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
finally {
|
|
354
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
355
|
+
write.free();
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Sync the simulation state and return the schematic (cloned).
|
|
361
|
+
*/
|
|
362
|
+
syncToSchematic() {
|
|
363
|
+
|
|
364
|
+
const result = wasm.TypedCircuitExecutor_sync_to_schematic(this.ffiValue);
|
|
365
|
+
|
|
366
|
+
try {
|
|
367
|
+
return new Schematic(diplomatRuntime.internalConstructor, result, []);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
finally {
|
|
371
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
constructor(symbol, ptr, selfEdge) {
|
|
376
|
+
return this.#internalConstructor(...arguments)
|
|
377
|
+
}
|
|
378
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A typed circuit value (payload-carrying enum; PORTING rule 10).
|
|
9
|
+
*/
|
|
10
|
+
export class Value {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create an unsigned 32-bit integer value.
|
|
19
|
+
*/
|
|
20
|
+
static fromU32(v: number): Value;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Create a signed 32-bit integer value.
|
|
24
|
+
*/
|
|
25
|
+
static fromI32(v: number): Value;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Create a 32-bit IEEE 754 float value.
|
|
29
|
+
*/
|
|
30
|
+
static fromF32(v: number): Value;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Create a boolean value.
|
|
34
|
+
*/
|
|
35
|
+
static fromBool(v: boolean): Value;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Create a string value. Fails if the bytes are not valid UTF-8.
|
|
39
|
+
*/
|
|
40
|
+
static fromString(s: string): Value;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The value as u32. Also accepts u64/non-negative signed ints that
|
|
44
|
+
* fit, and bool (false → 0, true → 1); fails otherwise.
|
|
45
|
+
*/
|
|
46
|
+
asU32(): number;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The value as i32. Also accepts i64 values in i32 range; fails for
|
|
50
|
+
* other types.
|
|
51
|
+
*/
|
|
52
|
+
asI32(): number;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The value as f32; fails if this is not an f32 value.
|
|
56
|
+
*/
|
|
57
|
+
asF32(): number;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* The value as bool; fails if this is not a bool value.
|
|
61
|
+
*/
|
|
62
|
+
asBool(): boolean;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The string payload; fails if this is not a string value.
|
|
66
|
+
*/
|
|
67
|
+
asString(): string;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The type name (e.g. "u32", "bool", "string").
|
|
71
|
+
*/
|
|
72
|
+
typeName(): string;
|
|
73
|
+
}
|