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,73 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { IoLayout } from "./IoLayout.mjs"
|
|
3
|
+
import type { IoType } from "./IoType.mjs"
|
|
4
|
+
import type { LayoutFunction } from "./LayoutFunction.mjs"
|
|
5
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Builder for an {@link IoLayout}. `build` consumes it (PORTING rule 11).
|
|
12
|
+
*/
|
|
13
|
+
export class IoLayoutBuilder {
|
|
14
|
+
/** @internal */
|
|
15
|
+
get ffiValue(): pointer;
|
|
16
|
+
/** @internal */
|
|
17
|
+
constructor();
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Create an empty layout builder.
|
|
22
|
+
*/
|
|
23
|
+
static create(): IoLayoutBuilder;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Add an input. `positions` is flat `[x,y,z, x,y,z, ...]`.
|
|
27
|
+
*/
|
|
28
|
+
addInput(name: string, ioType: IoType, layout: LayoutFunction, positions: Array<number>): void;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Add an output. `positions` is flat `[x,y,z, x,y,z, ...]`.
|
|
32
|
+
*/
|
|
33
|
+
addOutput(name: string, ioType: IoType, layout: LayoutFunction, positions: Array<number>): void;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Add an input with automatic layout inference.
|
|
37
|
+
*/
|
|
38
|
+
addInputAuto(name: string, ioType: IoType, positions: Array<number>): void;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Add an output with automatic layout inference.
|
|
42
|
+
*/
|
|
43
|
+
addOutputAuto(name: string, ioType: IoType, positions: Array<number>): void;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Add an input from a region given as flat block positions (sorted by
|
|
47
|
+
* the default YXZ strategy, matching the old region semantics).
|
|
48
|
+
*/
|
|
49
|
+
addInputFromRegion(name: string, ioType: IoType, layout: LayoutFunction, regionPositions: Array<number>): void;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Add an input from a region (flat positions) with automatic layout
|
|
53
|
+
* inference.
|
|
54
|
+
*/
|
|
55
|
+
addInputFromRegionAuto(name: string, ioType: IoType, regionPositions: Array<number>): void;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Add an output from a region given as flat block positions.
|
|
59
|
+
*/
|
|
60
|
+
addOutputFromRegion(name: string, ioType: IoType, layout: LayoutFunction, regionPositions: Array<number>): void;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Add an output from a region (flat positions) with automatic layout
|
|
64
|
+
* inference.
|
|
65
|
+
*/
|
|
66
|
+
addOutputFromRegionAuto(name: string, ioType: IoType, regionPositions: Array<number>): void;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Build the {@link IoLayout}. Consumes the builder (a second call returns
|
|
70
|
+
* `AlreadyConsumed`).
|
|
71
|
+
*/
|
|
72
|
+
build(): IoLayout;
|
|
73
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { IoLayout } from "./IoLayout.mjs"
|
|
3
|
+
import type { IoType } from "./IoType.mjs"
|
|
4
|
+
import type { LayoutFunction } from "./LayoutFunction.mjs"
|
|
5
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Builder for an {@link IoLayout}. `build` consumes it (PORTING rule 11).
|
|
12
|
+
*/
|
|
13
|
+
export class IoLayoutBuilder {
|
|
14
|
+
/** @internal */
|
|
15
|
+
get ffiValue(): pointer;
|
|
16
|
+
/** @internal */
|
|
17
|
+
constructor();
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Create an empty layout builder.
|
|
22
|
+
*/
|
|
23
|
+
static create(): IoLayoutBuilder;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Add an input. `positions` is flat `[x,y,z, x,y,z, ...]`.
|
|
27
|
+
*/
|
|
28
|
+
addInput(name: string, ioType: IoType, layout: LayoutFunction, positions: Array<number>): void;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Add an output. `positions` is flat `[x,y,z, x,y,z, ...]`.
|
|
32
|
+
*/
|
|
33
|
+
addOutput(name: string, ioType: IoType, layout: LayoutFunction, positions: Array<number>): void;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Add an input with automatic layout inference.
|
|
37
|
+
*/
|
|
38
|
+
addInputAuto(name: string, ioType: IoType, positions: Array<number>): void;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Add an output with automatic layout inference.
|
|
42
|
+
*/
|
|
43
|
+
addOutputAuto(name: string, ioType: IoType, positions: Array<number>): void;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Add an input from a region given as flat block positions (sorted by
|
|
47
|
+
* the default YXZ strategy, matching the old region semantics).
|
|
48
|
+
*/
|
|
49
|
+
addInputFromRegion(name: string, ioType: IoType, layout: LayoutFunction, regionPositions: Array<number>): void;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Add an input from a region (flat positions) with automatic layout
|
|
53
|
+
* inference.
|
|
54
|
+
*/
|
|
55
|
+
addInputFromRegionAuto(name: string, ioType: IoType, regionPositions: Array<number>): void;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Add an output from a region given as flat block positions.
|
|
59
|
+
*/
|
|
60
|
+
addOutputFromRegion(name: string, ioType: IoType, layout: LayoutFunction, regionPositions: Array<number>): void;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Add an output from a region (flat positions) with automatic layout
|
|
64
|
+
* inference.
|
|
65
|
+
*/
|
|
66
|
+
addOutputFromRegionAuto(name: string, ioType: IoType, regionPositions: Array<number>): void;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Build the {@link IoLayout}. Consumes the builder (a second call returns
|
|
70
|
+
* `AlreadyConsumed`).
|
|
71
|
+
*/
|
|
72
|
+
build(): IoLayout;
|
|
73
|
+
}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { IoLayout } from "./IoLayout.mjs"
|
|
3
|
+
import { IoType } from "./IoType.mjs"
|
|
4
|
+
import { LayoutFunction } from "./LayoutFunction.mjs"
|
|
5
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
6
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
7
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
8
|
+
|
|
9
|
+
const IoLayoutBuilder_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
10
|
+
wasm.IoLayoutBuilder_destroy(ptr);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Builder for an {@link IoLayout}. `build` consumes it (PORTING rule 11).
|
|
15
|
+
*/
|
|
16
|
+
export class IoLayoutBuilder {
|
|
17
|
+
// Internal ptr reference:
|
|
18
|
+
#ptr = null;
|
|
19
|
+
|
|
20
|
+
// Lifetimes are only to keep dependencies alive.
|
|
21
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
22
|
+
#selfEdge = [];
|
|
23
|
+
|
|
24
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
25
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
26
|
+
console.error("IoLayoutBuilder is an Opaque type. You cannot call its constructor.");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.#ptr = ptr;
|
|
30
|
+
this.#selfEdge = selfEdge;
|
|
31
|
+
|
|
32
|
+
// Are we being borrowed? If not, we can register.
|
|
33
|
+
if (this.#selfEdge.length === 0) {
|
|
34
|
+
IoLayoutBuilder_box_destroy_registry.register(this, this.#ptr);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
/** @internal */
|
|
40
|
+
get ffiValue() {
|
|
41
|
+
return this.#ptr;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Create an empty layout builder.
|
|
47
|
+
*/
|
|
48
|
+
static create() {
|
|
49
|
+
|
|
50
|
+
const result = wasm.IoLayoutBuilder_create();
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
return new IoLayoutBuilder(diplomatRuntime.internalConstructor, result, []);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
finally {
|
|
57
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Add an input. `positions` is flat `[x,y,z, x,y,z, ...]`.
|
|
63
|
+
*/
|
|
64
|
+
addInput(name, ioType, layout, positions) {
|
|
65
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
66
|
+
|
|
67
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
68
|
+
const positionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, positions, "i32")));
|
|
69
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
const result = wasm.IoLayoutBuilder_add_input(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, layout.ffiValue, positionsSlice.ptr);
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
if (!diplomatReceive.resultFlag) {
|
|
76
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
77
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
finally {
|
|
82
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
83
|
+
functionCleanupArena.free();
|
|
84
|
+
|
|
85
|
+
diplomatReceive.free();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Add an output. `positions` is flat `[x,y,z, x,y,z, ...]`.
|
|
91
|
+
*/
|
|
92
|
+
addOutput(name, ioType, layout, positions) {
|
|
93
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
94
|
+
|
|
95
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
96
|
+
const positionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, positions, "i32")));
|
|
97
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
const result = wasm.IoLayoutBuilder_add_output(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, layout.ffiValue, positionsSlice.ptr);
|
|
101
|
+
|
|
102
|
+
try {
|
|
103
|
+
if (!diplomatReceive.resultFlag) {
|
|
104
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
105
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
finally {
|
|
110
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
111
|
+
functionCleanupArena.free();
|
|
112
|
+
|
|
113
|
+
diplomatReceive.free();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Add an input with automatic layout inference.
|
|
119
|
+
*/
|
|
120
|
+
addInputAuto(name, ioType, positions) {
|
|
121
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
122
|
+
|
|
123
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
124
|
+
const positionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, positions, "i32")));
|
|
125
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
const result = wasm.IoLayoutBuilder_add_input_auto(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, positionsSlice.ptr);
|
|
129
|
+
|
|
130
|
+
try {
|
|
131
|
+
if (!diplomatReceive.resultFlag) {
|
|
132
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
133
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
finally {
|
|
138
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
139
|
+
functionCleanupArena.free();
|
|
140
|
+
|
|
141
|
+
diplomatReceive.free();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Add an output with automatic layout inference.
|
|
147
|
+
*/
|
|
148
|
+
addOutputAuto(name, ioType, positions) {
|
|
149
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
150
|
+
|
|
151
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
152
|
+
const positionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, positions, "i32")));
|
|
153
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
const result = wasm.IoLayoutBuilder_add_output_auto(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, positionsSlice.ptr);
|
|
157
|
+
|
|
158
|
+
try {
|
|
159
|
+
if (!diplomatReceive.resultFlag) {
|
|
160
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
161
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
finally {
|
|
166
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
167
|
+
functionCleanupArena.free();
|
|
168
|
+
|
|
169
|
+
diplomatReceive.free();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Add an input from a region given as flat block positions (sorted by
|
|
175
|
+
* the default YXZ strategy, matching the old region semantics).
|
|
176
|
+
*/
|
|
177
|
+
addInputFromRegion(name, ioType, layout, regionPositions) {
|
|
178
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
179
|
+
|
|
180
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
181
|
+
const regionPositionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, regionPositions, "i32")));
|
|
182
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
const result = wasm.IoLayoutBuilder_add_input_from_region(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, layout.ffiValue, regionPositionsSlice.ptr);
|
|
186
|
+
|
|
187
|
+
try {
|
|
188
|
+
if (!diplomatReceive.resultFlag) {
|
|
189
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
190
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
finally {
|
|
195
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
196
|
+
functionCleanupArena.free();
|
|
197
|
+
|
|
198
|
+
diplomatReceive.free();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Add an input from a region (flat positions) with automatic layout
|
|
204
|
+
* inference.
|
|
205
|
+
*/
|
|
206
|
+
addInputFromRegionAuto(name, ioType, regionPositions) {
|
|
207
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
208
|
+
|
|
209
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
210
|
+
const regionPositionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, regionPositions, "i32")));
|
|
211
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
const result = wasm.IoLayoutBuilder_add_input_from_region_auto(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, regionPositionsSlice.ptr);
|
|
215
|
+
|
|
216
|
+
try {
|
|
217
|
+
if (!diplomatReceive.resultFlag) {
|
|
218
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
219
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
finally {
|
|
224
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
225
|
+
functionCleanupArena.free();
|
|
226
|
+
|
|
227
|
+
diplomatReceive.free();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Add an output from a region given as flat block positions.
|
|
233
|
+
*/
|
|
234
|
+
addOutputFromRegion(name, ioType, layout, regionPositions) {
|
|
235
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
236
|
+
|
|
237
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
238
|
+
const regionPositionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, regionPositions, "i32")));
|
|
239
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
const result = wasm.IoLayoutBuilder_add_output_from_region(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, layout.ffiValue, regionPositionsSlice.ptr);
|
|
243
|
+
|
|
244
|
+
try {
|
|
245
|
+
if (!diplomatReceive.resultFlag) {
|
|
246
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
247
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
finally {
|
|
252
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
253
|
+
functionCleanupArena.free();
|
|
254
|
+
|
|
255
|
+
diplomatReceive.free();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Add an output from a region (flat positions) with automatic layout
|
|
261
|
+
* inference.
|
|
262
|
+
*/
|
|
263
|
+
addOutputFromRegionAuto(name, ioType, regionPositions) {
|
|
264
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
265
|
+
|
|
266
|
+
const nameSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, name)));
|
|
267
|
+
const regionPositionsSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, regionPositions, "i32")));
|
|
268
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
const result = wasm.IoLayoutBuilder_add_output_from_region_auto(diplomatReceive.buffer, this.ffiValue, nameSlice.ptr, ioType.ffiValue, regionPositionsSlice.ptr);
|
|
272
|
+
|
|
273
|
+
try {
|
|
274
|
+
if (!diplomatReceive.resultFlag) {
|
|
275
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
276
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
finally {
|
|
281
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
282
|
+
functionCleanupArena.free();
|
|
283
|
+
|
|
284
|
+
diplomatReceive.free();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Build the {@link IoLayout}. Consumes the builder (a second call returns
|
|
290
|
+
* `AlreadyConsumed`).
|
|
291
|
+
*/
|
|
292
|
+
build() {
|
|
293
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
const result = wasm.IoLayoutBuilder_build(diplomatReceive.buffer, this.ffiValue);
|
|
297
|
+
|
|
298
|
+
try {
|
|
299
|
+
if (!diplomatReceive.resultFlag) {
|
|
300
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
301
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
302
|
+
}
|
|
303
|
+
return new IoLayout(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
finally {
|
|
307
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
308
|
+
diplomatReceive.free();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
constructor(symbol, ptr, selfEdge) {
|
|
313
|
+
return this.#internalConstructor(...arguments)
|
|
314
|
+
}
|
|
315
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The wire type of a circuit input/output (PORTING rule 10).
|
|
8
|
+
*/
|
|
9
|
+
export class IoType {
|
|
10
|
+
/** @internal */
|
|
11
|
+
get ffiValue(): pointer;
|
|
12
|
+
/** @internal */
|
|
13
|
+
constructor();
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Unsigned integer of `bits` bits (LSB-first bit order).
|
|
18
|
+
*/
|
|
19
|
+
static unsignedInt(bits: number): IoType;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Signed integer of `bits` bits (two's complement, LSB-first).
|
|
23
|
+
*/
|
|
24
|
+
static signedInt(bits: number): IoType;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 32-bit IEEE 754 float (crosses the wire as its 32 raw bits).
|
|
28
|
+
*/
|
|
29
|
+
static float32(): IoType;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Single boolean (1 bit).
|
|
33
|
+
*/
|
|
34
|
+
static boolean(): IoType;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Fixed-length ASCII string of `chars` characters (8 bits per char;
|
|
38
|
+
* shorter strings are zero-padded, longer ones truncated).
|
|
39
|
+
*/
|
|
40
|
+
static ascii(chars: number): IoType;
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The wire type of a circuit input/output (PORTING rule 10).
|
|
8
|
+
*/
|
|
9
|
+
export class IoType {
|
|
10
|
+
/** @internal */
|
|
11
|
+
get ffiValue(): pointer;
|
|
12
|
+
/** @internal */
|
|
13
|
+
constructor();
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Unsigned integer of `bits` bits (LSB-first bit order).
|
|
18
|
+
*/
|
|
19
|
+
static unsignedInt(bits: number): IoType;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Signed integer of `bits` bits (two's complement, LSB-first).
|
|
23
|
+
*/
|
|
24
|
+
static signedInt(bits: number): IoType;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 32-bit IEEE 754 float (crosses the wire as its 32 raw bits).
|
|
28
|
+
*/
|
|
29
|
+
static float32(): IoType;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Single boolean (1 bit).
|
|
33
|
+
*/
|
|
34
|
+
static boolean(): IoType;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Fixed-length ASCII string of `chars` characters (8 bits per char;
|
|
38
|
+
* shorter strings are zero-padded, longer ones truncated).
|
|
39
|
+
*/
|
|
40
|
+
static ascii(chars: number): IoType;
|
|
41
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
3
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
4
|
+
|
|
5
|
+
const IoType_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
6
|
+
wasm.IoType_destroy(ptr);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The wire type of a circuit input/output (PORTING rule 10).
|
|
11
|
+
*/
|
|
12
|
+
export class IoType {
|
|
13
|
+
// Internal ptr reference:
|
|
14
|
+
#ptr = null;
|
|
15
|
+
|
|
16
|
+
// Lifetimes are only to keep dependencies alive.
|
|
17
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
18
|
+
#selfEdge = [];
|
|
19
|
+
|
|
20
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
21
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
22
|
+
console.error("IoType is an Opaque type. You cannot call its constructor.");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.#ptr = ptr;
|
|
26
|
+
this.#selfEdge = selfEdge;
|
|
27
|
+
|
|
28
|
+
// Are we being borrowed? If not, we can register.
|
|
29
|
+
if (this.#selfEdge.length === 0) {
|
|
30
|
+
IoType_box_destroy_registry.register(this, this.#ptr);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/** @internal */
|
|
36
|
+
get ffiValue() {
|
|
37
|
+
return this.#ptr;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Unsigned integer of `bits` bits (LSB-first bit order).
|
|
43
|
+
*/
|
|
44
|
+
static unsignedInt(bits) {
|
|
45
|
+
|
|
46
|
+
const result = wasm.IoType_unsigned_int(bits);
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
return new IoType(diplomatRuntime.internalConstructor, result, []);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
finally {
|
|
53
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Signed integer of `bits` bits (two's complement, LSB-first).
|
|
59
|
+
*/
|
|
60
|
+
static signedInt(bits) {
|
|
61
|
+
|
|
62
|
+
const result = wasm.IoType_signed_int(bits);
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
return new IoType(diplomatRuntime.internalConstructor, result, []);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
finally {
|
|
69
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* 32-bit IEEE 754 float (crosses the wire as its 32 raw bits).
|
|
75
|
+
*/
|
|
76
|
+
static float32() {
|
|
77
|
+
|
|
78
|
+
const result = wasm.IoType_float32();
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
return new IoType(diplomatRuntime.internalConstructor, result, []);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
finally {
|
|
85
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Single boolean (1 bit).
|
|
91
|
+
*/
|
|
92
|
+
static boolean() {
|
|
93
|
+
|
|
94
|
+
const result = wasm.IoType_boolean();
|
|
95
|
+
|
|
96
|
+
try {
|
|
97
|
+
return new IoType(diplomatRuntime.internalConstructor, result, []);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
finally {
|
|
101
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Fixed-length ASCII string of `chars` characters (8 bits per char;
|
|
107
|
+
* shorter strings are zero-padded, longer ones truncated).
|
|
108
|
+
*/
|
|
109
|
+
static ascii(chars) {
|
|
110
|
+
|
|
111
|
+
const result = wasm.IoType_ascii(chars);
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
return new IoType(diplomatRuntime.internalConstructor, result, []);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
finally {
|
|
118
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
constructor(symbol, ptr, selfEdge) {
|
|
123
|
+
return this.#internalConstructor(...arguments)
|
|
124
|
+
}
|
|
125
|
+
}
|