@exornea/zeno-runtime 1.7.0 → 2.3.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/dist/abi.d.ts +2 -2
- package/dist/abi.d.ts.map +1 -1
- package/dist/abi.js +2 -2
- package/dist/abi.js.map +1 -1
- package/dist/byte-vectors.d.ts +7 -4
- package/dist/byte-vectors.d.ts.map +1 -1
- package/dist/byte-vectors.js +13 -6
- package/dist/byte-vectors.js.map +1 -1
- package/dist/fixed-arrays.d.ts +3 -2
- package/dist/fixed-arrays.d.ts.map +1 -1
- package/dist/fixed-arrays.js +5 -2
- package/dist/fixed-arrays.js.map +1 -1
- package/dist/fixed.d.ts +3 -0
- package/dist/fixed.d.ts.map +1 -1
- package/dist/fixed.js +35 -0
- package/dist/fixed.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/scalar-vector.d.ts +2 -0
- package/dist/scalar-vector.d.ts.map +1 -1
- package/dist/scalar-vector.js +44 -3
- package/dist/scalar-vector.js.map +1 -1
- package/dist/vector-base.d.ts +20 -0
- package/dist/vector-base.d.ts.map +1 -1
- package/dist/vector-base.js +60 -4
- package/dist/vector-base.js.map +1 -1
- package/dist/view-base.d.ts +2 -0
- package/dist/view-base.d.ts.map +1 -1
- package/dist/view-base.js +9 -0
- package/dist/view-base.js.map +1 -1
- package/dist/writer-arena.d.ts +58 -0
- package/dist/writer-arena.d.ts.map +1 -1
- package/dist/writer-arena.js +160 -10
- package/dist/writer-arena.js.map +1 -1
- package/dist/writer-byte-vectors.d.ts +6 -0
- package/dist/writer-byte-vectors.d.ts.map +1 -1
- package/dist/writer-byte-vectors.js +38 -16
- package/dist/writer-byte-vectors.js.map +1 -1
- package/dist/writer-pointer-vectors.d.ts +1 -0
- package/dist/writer-pointer-vectors.d.ts.map +1 -1
- package/dist/writer-pointer-vectors.js +7 -4
- package/dist/writer-pointer-vectors.js.map +1 -1
- package/dist/writer-scalar-vectors.d.ts +1 -0
- package/dist/writer-scalar-vectors.d.ts.map +1 -1
- package/dist/writer-scalar-vectors.js +7 -3
- package/dist/writer-scalar-vectors.js.map +1 -1
- package/dist/writer-spans.d.ts +3 -0
- package/dist/writer-spans.d.ts.map +1 -1
- package/dist/writer-spans.js +15 -6
- package/dist/writer-spans.js.map +1 -1
- package/dist/writer-struct-vectors.d.ts +3 -0
- package/dist/writer-struct-vectors.d.ts.map +1 -1
- package/dist/writer-struct-vectors.js +27 -3
- package/dist/writer-struct-vectors.js.map +1 -1
- package/dist/writer.d.ts +53 -0
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +161 -0
- package/dist/writer.js.map +1 -1
- package/package.json +2 -2
package/dist/view-base.js
CHANGED
|
@@ -24,12 +24,21 @@ export class ProjectionView {
|
|
|
24
24
|
const baseOffset = index * byteLength;
|
|
25
25
|
return this.moveToOffset(baseOffset, byteLength);
|
|
26
26
|
}
|
|
27
|
+
moveToIndexUnchecked(index, byteLength) {
|
|
28
|
+
const baseOffset = index * byteLength;
|
|
29
|
+
this.baseOffset = baseOffset;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
27
32
|
moveToOffset(baseOffset, byteLength) {
|
|
28
33
|
assertDataViewRange(this.view, baseOffset, 0);
|
|
29
34
|
assertDataViewRange(this.view, baseOffset, byteLength);
|
|
30
35
|
this.baseOffset = baseOffset;
|
|
31
36
|
return this;
|
|
32
37
|
}
|
|
38
|
+
moveToOffsetUnchecked(baseOffset, _byteLength) {
|
|
39
|
+
this.baseOffset = baseOffset;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
33
42
|
absoluteOffset(localOffset = 0) {
|
|
34
43
|
return this.baseOffset + localOffset;
|
|
35
44
|
}
|
package/dist/view-base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-base.js","sourceRoot":"","sources":["../src/view-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,OAAgB,cAAc;IAEb;IACT;IACS;IAHrB,YACqB,IAAc,EACvB,aAAa,CAAC,EACL,eAAe,IAAI;QAFnB,SAAI,GAAJ,IAAI,CAAU;QACvB,eAAU,GAAV,UAAU,CAAI;QACL,iBAAY,GAAZ,YAAY,CAAO;IACrC,CAAC;IAEJ,MAAM,CAAC,UAAkB;QACvB,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,WAAW,CAAC,KAAa,EAAE,UAAkB;QACrD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,UAAU,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,YAAY,CAAC,UAAkB,EAAE,UAAkB;QACjD,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9C,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,cAAc,CAAC,WAAW,GAAG,CAAC;QACtC,OAAO,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;IACvC,CAAC;IAES,aAAa,CAAC,WAAW,GAAG,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAES,WAAW,CAAC,WAAmB,EAAE,UAAkB;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/C,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"view-base.js","sourceRoot":"","sources":["../src/view-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,OAAgB,cAAc;IAEb;IACT;IACS;IAHrB,YACqB,IAAc,EACvB,aAAa,CAAC,EACL,eAAe,IAAI;QAFnB,SAAI,GAAJ,IAAI,CAAU;QACvB,eAAU,GAAV,UAAU,CAAI;QACL,iBAAY,GAAZ,YAAY,CAAO;IACrC,CAAC;IAEJ,MAAM,CAAC,UAAkB;QACvB,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,WAAW,CAAC,KAAa,EAAE,UAAkB;QACrD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,UAAU,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAES,oBAAoB,CAAC,KAAa,EAAE,UAAkB;QAC9D,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,UAAkB,EAAE,UAAkB;QACjD,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9C,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB,CAAC,UAAkB,EAAE,WAAmB;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,cAAc,CAAC,WAAW,GAAG,CAAC;QACtC,OAAO,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;IACvC,CAAC;IAES,aAAa,CAAC,WAAW,GAAG,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAES,WAAW,CAAC,WAAmB,EAAE,UAAkB;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/C,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;CACF"}
|
package/dist/writer-arena.d.ts
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
import { type Span32Descriptor } from "./descriptor32.js";
|
|
2
2
|
import { type TextEncoding } from "./fixed.js";
|
|
3
|
+
export interface SharedArenaViewOptions {
|
|
4
|
+
readonly byteOffset?: number;
|
|
5
|
+
readonly byteLength?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SharedArenaOptions extends SharedArenaViewOptions {
|
|
8
|
+
readonly cursorByteOffset: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SharedArenaShardOptions {
|
|
11
|
+
readonly shardCount: number;
|
|
12
|
+
readonly shardIndex: number;
|
|
13
|
+
readonly payloadByteOffset: number;
|
|
14
|
+
readonly payloadByteLength: number;
|
|
15
|
+
readonly cursorTableByteOffset: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a `DataView` over a caller-owned `SharedArrayBuffer`.
|
|
19
|
+
*
|
|
20
|
+
* This helper does not add synchronization by itself. It only creates the view
|
|
21
|
+
* used by `SharedDynamicLayoutWriter`; atomic coordination lives in the cursor
|
|
22
|
+
* and descriptor state cells below.
|
|
23
|
+
*/
|
|
24
|
+
export declare function sharedArenaView(buffer: SharedArrayBuffer, options?: SharedArenaViewOptions): DataView;
|
|
25
|
+
export declare function sharedInt32Cell(buffer: SharedArrayBuffer, byteOffset: number, label?: string): Int32Array;
|
|
26
|
+
export declare function sharedArenaCursorCell(buffer: SharedArrayBuffer, cursorByteOffset: number): Int32Array;
|
|
27
|
+
/**
|
|
28
|
+
* Compute the single-writer shard owned by one worker.
|
|
29
|
+
*
|
|
30
|
+
* This is the preferred high-contention shape: give each worker a different
|
|
31
|
+
* shard so most appends use a different cursor cell and payload range instead
|
|
32
|
+
* of spinning on one shared CAS loop.
|
|
33
|
+
*/
|
|
34
|
+
export declare function sharedArenaShard(buffer: SharedArrayBuffer, options: SharedArenaShardOptions): SharedArenaOptions;
|
|
35
|
+
export declare function initializeSharedArenaShard(buffer: SharedArrayBuffer, options: SharedArenaShardOptions, tailOffset?: number): SharedArenaOptions;
|
|
36
|
+
/**
|
|
37
|
+
* A one-slot atomic publication cell for a dynamic descriptor.
|
|
38
|
+
*
|
|
39
|
+
* Writers publish the cell only after payload bytes and the `span32`/`vector32`
|
|
40
|
+
* descriptor fields have been written. Readers must observe this cell with
|
|
41
|
+
* `Atomics.load` before reading the descriptor to avoid torn descriptor reads.
|
|
42
|
+
*/
|
|
43
|
+
export declare function sharedDescriptorStateCell(buffer: SharedArrayBuffer, stateByteOffset: number): Int32Array;
|
|
44
|
+
/**
|
|
45
|
+
* Publish a descriptor with an atomic ready flag.
|
|
46
|
+
*
|
|
47
|
+
* JavaScript Atomics are sequentially consistent, so writes sequenced before
|
|
48
|
+
* this store in the writer happen-before a reader that observes the value with
|
|
49
|
+
* `isSharedDescriptorPublished(...)`. The ready cell is a host-native control
|
|
50
|
+
* word and is not part of the portable Zeno binary ABI.
|
|
51
|
+
*/
|
|
52
|
+
export declare function publishSharedDescriptor(state: Int32Array, readyValue?: number): void;
|
|
53
|
+
export declare function resetSharedDescriptor(state: Int32Array): void;
|
|
54
|
+
export declare function isSharedDescriptorPublished(state: Int32Array, readyValue?: number): boolean;
|
|
3
55
|
export declare class DynamicLayoutArena {
|
|
4
56
|
protected readonly view: DataView;
|
|
5
57
|
protected readonly baseOffset: number;
|
|
@@ -10,7 +62,13 @@ export declare class DynamicLayoutArena {
|
|
|
10
62
|
align(alignment: number): this;
|
|
11
63
|
reserve(byteLength: number, alignment?: number): number;
|
|
12
64
|
appendBytes(bytes: ArrayLike<number> | Uint8Array, alignment?: number): Span32Descriptor;
|
|
65
|
+
appendBytesAtBase(descriptorBaseOffset: number, bytes: ArrayLike<number> | Uint8Array, alignment?: number): Span32Descriptor;
|
|
13
66
|
appendUtf8(text: string, encoder?: TextEncoder): Span32Descriptor;
|
|
67
|
+
appendUtf8AtBase(descriptorBaseOffset: number, text: string, encoder?: TextEncoder): Span32Descriptor;
|
|
14
68
|
appendText(text: string, encoding?: TextEncoding): Span32Descriptor;
|
|
69
|
+
appendTextAtBase(descriptorBaseOffset: number, text: string, encoding?: TextEncoding): Span32Descriptor;
|
|
70
|
+
protected readCursor(): number;
|
|
71
|
+
protected writeCursor(value: number): void;
|
|
72
|
+
protected relativeOffsetFromBase(descriptorBaseOffset: number, absoluteOffset: number, label: string): number;
|
|
15
73
|
}
|
|
16
74
|
//# sourceMappingURL=writer-arena.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-arena.d.ts","sourceRoot":"","sources":["../src/writer-arena.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGzE,qBAAa,kBAAkB;IAI3B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAEjC,SAAS,CAAC,QAAQ,CAAC,UAAU;IAC7B,SAAS,CAAC,QAAQ,CAAC,YAAY;IANjC,OAAO,CAAC,MAAM,CAAS;gBAGF,IAAI,EAAE,QAAQ,EACjC,UAAU,EAAE,MAAM,EACC,UAAU,SAAI,EACd,YAAY,UAAO;IAOxC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO9B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM;IAQlD,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,SAAS,SAAI,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"writer-arena.d.ts","sourceRoot":"","sources":["../src/writer-arena.ts"],"names":[],"mappings":"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"}
|
package/dist/writer-arena.js
CHANGED
|
@@ -1,6 +1,95 @@
|
|
|
1
1
|
import {} from "./descriptor32.js";
|
|
2
2
|
import { UTF8_ENCODER, encodeText } from "./fixed.js";
|
|
3
|
-
import { alignOffset, assertDataViewRange } from "./range.js";
|
|
3
|
+
import { alignOffset, assertDataViewRange, assertUint32 } from "./range.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create a `DataView` over a caller-owned `SharedArrayBuffer`.
|
|
6
|
+
*
|
|
7
|
+
* This helper does not add synchronization by itself. It only creates the view
|
|
8
|
+
* used by `SharedDynamicLayoutWriter`; atomic coordination lives in the cursor
|
|
9
|
+
* and descriptor state cells below.
|
|
10
|
+
*/
|
|
11
|
+
export function sharedArenaView(buffer, options = {}) {
|
|
12
|
+
const byteOffset = options.byteOffset ?? 0;
|
|
13
|
+
if (options.byteLength === undefined) {
|
|
14
|
+
return new DataView(buffer, byteOffset);
|
|
15
|
+
}
|
|
16
|
+
return new DataView(buffer, byteOffset, options.byteLength);
|
|
17
|
+
}
|
|
18
|
+
export function sharedInt32Cell(buffer, byteOffset, label = "shared i32 cell") {
|
|
19
|
+
if (!Number.isInteger(byteOffset) || byteOffset < 0) {
|
|
20
|
+
throw new RangeError(`Invalid ${label} byte offset: ${byteOffset}`);
|
|
21
|
+
}
|
|
22
|
+
if (byteOffset % Int32Array.BYTES_PER_ELEMENT !== 0) {
|
|
23
|
+
throw new RangeError(`${label} byte offset must be ${Int32Array.BYTES_PER_ELEMENT}-byte aligned: ${byteOffset}`);
|
|
24
|
+
}
|
|
25
|
+
if (byteOffset + Int32Array.BYTES_PER_ELEMENT > buffer.byteLength) {
|
|
26
|
+
throw new RangeError(`${label} byte offset ${byteOffset} exceeds SharedArrayBuffer length ${buffer.byteLength}`);
|
|
27
|
+
}
|
|
28
|
+
return new Int32Array(buffer, byteOffset, 1);
|
|
29
|
+
}
|
|
30
|
+
export function sharedArenaCursorCell(buffer, cursorByteOffset) {
|
|
31
|
+
return sharedInt32Cell(buffer, cursorByteOffset, "shared arena cursor");
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Compute the single-writer shard owned by one worker.
|
|
35
|
+
*
|
|
36
|
+
* This is the preferred high-contention shape: give each worker a different
|
|
37
|
+
* shard so most appends use a different cursor cell and payload range instead
|
|
38
|
+
* of spinning on one shared CAS loop.
|
|
39
|
+
*/
|
|
40
|
+
export function sharedArenaShard(buffer, options) {
|
|
41
|
+
assertShardOptions(buffer, options);
|
|
42
|
+
const shardBaseLength = Math.floor(options.payloadByteLength / options.shardCount);
|
|
43
|
+
const byteOffset = options.payloadByteOffset + options.shardIndex * shardBaseLength;
|
|
44
|
+
const byteEnd = options.shardIndex === options.shardCount - 1
|
|
45
|
+
? options.payloadByteOffset + options.payloadByteLength
|
|
46
|
+
: byteOffset + shardBaseLength;
|
|
47
|
+
const byteLength = byteEnd - byteOffset;
|
|
48
|
+
const cursorByteOffset = options.cursorTableByteOffset + options.shardIndex * Int32Array.BYTES_PER_ELEMENT;
|
|
49
|
+
sharedArenaView(buffer, { byteOffset, byteLength });
|
|
50
|
+
sharedArenaCursorCell(buffer, cursorByteOffset);
|
|
51
|
+
return { byteOffset, byteLength, cursorByteOffset };
|
|
52
|
+
}
|
|
53
|
+
export function initializeSharedArenaShard(buffer, options, tailOffset = 0) {
|
|
54
|
+
const shard = sharedArenaShard(buffer, options);
|
|
55
|
+
if (!Number.isInteger(tailOffset) || tailOffset < 0 || tailOffset > shard.byteLength) {
|
|
56
|
+
throw new RangeError(`Invalid shard tail offset: ${tailOffset}`);
|
|
57
|
+
}
|
|
58
|
+
Atomics.store(sharedArenaCursorCell(buffer, shard.cursorByteOffset), 0, tailOffset);
|
|
59
|
+
return shard;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A one-slot atomic publication cell for a dynamic descriptor.
|
|
63
|
+
*
|
|
64
|
+
* Writers publish the cell only after payload bytes and the `span32`/`vector32`
|
|
65
|
+
* descriptor fields have been written. Readers must observe this cell with
|
|
66
|
+
* `Atomics.load` before reading the descriptor to avoid torn descriptor reads.
|
|
67
|
+
*/
|
|
68
|
+
export function sharedDescriptorStateCell(buffer, stateByteOffset) {
|
|
69
|
+
return sharedInt32Cell(buffer, stateByteOffset, "shared descriptor state");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Publish a descriptor with an atomic ready flag.
|
|
73
|
+
*
|
|
74
|
+
* JavaScript Atomics are sequentially consistent, so writes sequenced before
|
|
75
|
+
* this store in the writer happen-before a reader that observes the value with
|
|
76
|
+
* `isSharedDescriptorPublished(...)`. The ready cell is a host-native control
|
|
77
|
+
* word and is not part of the portable Zeno binary ABI.
|
|
78
|
+
*/
|
|
79
|
+
export function publishSharedDescriptor(state, readyValue = 1) {
|
|
80
|
+
assertSharedStateCell(state);
|
|
81
|
+
assertSharedStateValue(readyValue);
|
|
82
|
+
Atomics.store(state, 0, readyValue);
|
|
83
|
+
}
|
|
84
|
+
export function resetSharedDescriptor(state) {
|
|
85
|
+
assertSharedStateCell(state);
|
|
86
|
+
Atomics.store(state, 0, 0);
|
|
87
|
+
}
|
|
88
|
+
export function isSharedDescriptorPublished(state, readyValue = 1) {
|
|
89
|
+
assertSharedStateCell(state);
|
|
90
|
+
assertSharedStateValue(readyValue);
|
|
91
|
+
return Atomics.load(state, 0) === readyValue;
|
|
92
|
+
}
|
|
4
93
|
export class DynamicLayoutArena {
|
|
5
94
|
view;
|
|
6
95
|
baseOffset;
|
|
@@ -15,32 +104,93 @@ export class DynamicLayoutArena {
|
|
|
15
104
|
this.cursor = tailOffset;
|
|
16
105
|
}
|
|
17
106
|
get tailOffset() {
|
|
18
|
-
return this.
|
|
107
|
+
return this.readCursor();
|
|
19
108
|
}
|
|
20
109
|
align(alignment) {
|
|
21
|
-
const next = alignOffset(this.
|
|
110
|
+
const next = alignOffset(this.readCursor(), alignment);
|
|
22
111
|
assertDataViewRange(this.view, this.baseOffset + next, 0);
|
|
23
|
-
this.
|
|
112
|
+
this.writeCursor(next);
|
|
24
113
|
return this;
|
|
25
114
|
}
|
|
26
115
|
reserve(byteLength, alignment = 1) {
|
|
27
116
|
this.align(alignment);
|
|
28
|
-
const offset = this.
|
|
117
|
+
const offset = this.readCursor();
|
|
29
118
|
assertDataViewRange(this.view, this.baseOffset + offset, byteLength);
|
|
30
|
-
this.
|
|
119
|
+
this.writeCursor(offset + byteLength);
|
|
31
120
|
return offset;
|
|
32
121
|
}
|
|
33
122
|
appendBytes(bytes, alignment = 1) {
|
|
123
|
+
return this.appendBytesAtBase(this.baseOffset, bytes, alignment);
|
|
124
|
+
}
|
|
125
|
+
appendBytesAtBase(descriptorBaseOffset, bytes, alignment = 1) {
|
|
34
126
|
const byteLength = bytes.length;
|
|
35
|
-
const
|
|
36
|
-
|
|
127
|
+
const payloadOffset = this.reserve(byteLength, alignment);
|
|
128
|
+
const payloadAbsoluteOffset = this.baseOffset + payloadOffset;
|
|
129
|
+
const relOffset = this.relativeOffsetFromBase(descriptorBaseOffset, payloadAbsoluteOffset, "Span32.relOffset");
|
|
130
|
+
new Uint8Array(this.view.buffer, this.view.byteOffset + payloadAbsoluteOffset, byteLength).set(bytes);
|
|
37
131
|
return { relOffset, byteLength };
|
|
38
132
|
}
|
|
39
133
|
appendUtf8(text, encoder = UTF8_ENCODER) {
|
|
40
|
-
return this.
|
|
134
|
+
return this.appendUtf8AtBase(this.baseOffset, text, encoder);
|
|
135
|
+
}
|
|
136
|
+
appendUtf8AtBase(descriptorBaseOffset, text, encoder = UTF8_ENCODER) {
|
|
137
|
+
return this.appendBytesAtBase(descriptorBaseOffset, encoder.encode(text));
|
|
41
138
|
}
|
|
42
139
|
appendText(text, encoding = "utf8") {
|
|
43
|
-
return this.
|
|
140
|
+
return this.appendTextAtBase(this.baseOffset, text, encoding);
|
|
141
|
+
}
|
|
142
|
+
appendTextAtBase(descriptorBaseOffset, text, encoding = "utf8") {
|
|
143
|
+
return this.appendBytesAtBase(descriptorBaseOffset, encodeText(text, encoding));
|
|
144
|
+
}
|
|
145
|
+
readCursor() {
|
|
146
|
+
return this.cursor;
|
|
147
|
+
}
|
|
148
|
+
writeCursor(value) {
|
|
149
|
+
this.cursor = value;
|
|
150
|
+
}
|
|
151
|
+
relativeOffsetFromBase(descriptorBaseOffset, absoluteOffset, label) {
|
|
152
|
+
assertDataViewRange(this.view, descriptorBaseOffset, 0);
|
|
153
|
+
assertDataViewRange(this.view, absoluteOffset, 0);
|
|
154
|
+
const relOffset = absoluteOffset - descriptorBaseOffset;
|
|
155
|
+
assertUint32(relOffset, label);
|
|
156
|
+
return relOffset;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function assertSharedStateCell(state) {
|
|
160
|
+
if (state.length < 1) {
|
|
161
|
+
throw new RangeError("Shared descriptor state cell must contain at least one i32 slot.");
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function assertSharedStateValue(value) {
|
|
165
|
+
if (!Number.isInteger(value) || value <= 0 || value > 0x7fffffff) {
|
|
166
|
+
throw new RangeError(`Shared descriptor ready value must be a positive i32: ${value}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function assertShardOptions(buffer, options) {
|
|
170
|
+
if (!Number.isInteger(options.shardCount) || options.shardCount <= 0) {
|
|
171
|
+
throw new RangeError(`Invalid shared arena shard count: ${options.shardCount}`);
|
|
172
|
+
}
|
|
173
|
+
if (!Number.isInteger(options.shardIndex) ||
|
|
174
|
+
options.shardIndex < 0 ||
|
|
175
|
+
options.shardIndex >= options.shardCount) {
|
|
176
|
+
throw new RangeError(`Invalid shared arena shard index: ${options.shardIndex}`);
|
|
177
|
+
}
|
|
178
|
+
if (!Number.isInteger(options.payloadByteOffset) || options.payloadByteOffset < 0) {
|
|
179
|
+
throw new RangeError(`Invalid shared arena payload byte offset: ${options.payloadByteOffset}`);
|
|
180
|
+
}
|
|
181
|
+
if (!Number.isInteger(options.payloadByteLength) || options.payloadByteLength <= 0) {
|
|
182
|
+
throw new RangeError(`Invalid shared arena payload byte length: ${options.payloadByteLength}`);
|
|
183
|
+
}
|
|
184
|
+
if (options.payloadByteLength < options.shardCount) {
|
|
185
|
+
throw new RangeError("Shared arena payload must provide at least one byte per shard.");
|
|
186
|
+
}
|
|
187
|
+
if (options.payloadByteOffset + options.payloadByteLength > buffer.byteLength) {
|
|
188
|
+
throw new RangeError(`Shared arena payload exceeds SharedArrayBuffer length ${buffer.byteLength}.`);
|
|
189
|
+
}
|
|
190
|
+
const cursorTableByteLength = options.shardCount * Int32Array.BYTES_PER_ELEMENT;
|
|
191
|
+
sharedInt32Cell(buffer, options.cursorTableByteOffset, "shared arena cursor table");
|
|
192
|
+
if (options.cursorTableByteOffset + cursorTableByteLength > buffer.byteLength) {
|
|
193
|
+
throw new RangeError(`Shared arena cursor table exceeds SharedArrayBuffer length ${buffer.byteLength}.`);
|
|
44
194
|
}
|
|
45
195
|
}
|
|
46
196
|
//# sourceMappingURL=writer-arena.js.map
|
package/dist/writer-arena.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-arena.js","sourceRoot":"","sources":["../src/writer-arena.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"writer-arena.js","sourceRoot":"","sources":["../src/writer-arena.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,16 @@ import { type TextEncoding } from "./fixed.js";
|
|
|
3
3
|
import { SpanLayoutWriter } from "./writer-spans.js";
|
|
4
4
|
export declare class ByteVectorLayoutWriter extends SpanLayoutWriter {
|
|
5
5
|
writeBytesVector(descriptorOffset: number, values: readonly (ArrayLike<number> | Uint8Array)[]): Vector32Descriptor;
|
|
6
|
+
writeBytesVectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, values: readonly (ArrayLike<number> | Uint8Array)[]): Vector32Descriptor;
|
|
6
7
|
writeUtf8Vector(descriptorOffset: number, values: readonly string[], encoder?: TextEncoder): Vector32Descriptor;
|
|
8
|
+
writeUtf8VectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, values: readonly string[], encoder?: TextEncoder): Vector32Descriptor;
|
|
7
9
|
writeTextVector(descriptorOffset: number, values: readonly string[], encoding?: TextEncoding): Vector32Descriptor;
|
|
10
|
+
writeTextVectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, values: readonly string[], encoding?: TextEncoding): Vector32Descriptor;
|
|
8
11
|
writeFixedBytesVector(descriptorOffset: number, values: readonly (ArrayLike<number> | Uint8Array)[], elementByteLength: number): Vector32Descriptor;
|
|
12
|
+
writeFixedBytesVectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, values: readonly (ArrayLike<number> | Uint8Array)[], elementByteLength: number): Vector32Descriptor;
|
|
9
13
|
writeFixedUtf8Vector(descriptorOffset: number, values: readonly string[], elementByteLength: number, encoder?: TextEncoder): Vector32Descriptor;
|
|
14
|
+
writeFixedUtf8VectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, values: readonly string[], elementByteLength: number, encoder?: TextEncoder): Vector32Descriptor;
|
|
10
15
|
writeFixedTextVector(descriptorOffset: number, values: readonly string[], elementByteLength: number, encoding?: TextEncoding): Vector32Descriptor;
|
|
16
|
+
writeFixedTextVectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, values: readonly string[], elementByteLength: number, encoding?: TextEncoding): Vector32Descriptor;
|
|
11
17
|
}
|
|
12
18
|
//# sourceMappingURL=writer-byte-vectors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-byte-vectors.d.ts","sourceRoot":"","sources":["../src/writer-byte-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"writer-byte-vectors.d.ts","sourceRoot":"","sources":["../src/writer-byte-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC1D,gBAAgB,CACd,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,GAClD,kBAAkB;IAIrB,sBAAsB,CACpB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,GAClD,kBAAkB;IA+BrB,eAAe,CACb,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,cAAe,GACrB,kBAAkB;IAIrB,qBAAqB,CACnB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,cAAe,GACrB,kBAAkB;IAQrB,eAAe,CACb,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,QAAQ,GAAE,YAAqB,GAC9B,kBAAkB;IAIrB,qBAAqB,CACnB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,QAAQ,GAAE,YAAqB,GAC9B,kBAAkB;IAQrB,qBAAqB,CACnB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EACnD,iBAAiB,EAAE,MAAM,GACxB,kBAAkB;IASrB,2BAA2B,CACzB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EACnD,iBAAiB,EAAE,MAAM,GACxB,kBAAkB;IA8BrB,oBAAoB,CAClB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,iBAAiB,EAAE,MAAM,EACzB,OAAO,cAAe,GACrB,kBAAkB;IAUrB,0BAA0B,CACxB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,iBAAiB,EAAE,MAAM,EACzB,OAAO,cAAe,GACrB,kBAAkB;IA+BrB,oBAAoB,CAClB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,GAAE,YAAqB,GAC9B,kBAAkB;IAUrB,0BAA0B,CACxB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,GAAE,YAAqB,GAC9B,kBAAkB;CA8BtB"}
|
|
@@ -1,59 +1,81 @@
|
|
|
1
1
|
import { SPAN32_BYTE_LENGTH, writeSpan32Descriptor, writeVector32Descriptor, } from "./descriptor32.js";
|
|
2
|
-
import { UTF8_ENCODER, encodeText, writeFixedBytes, writeFixedText, writeFixedUtf8 } from "./fixed.js";
|
|
2
|
+
import { UTF8_ENCODER, encodeText, writeFixedBytes, writeFixedText, writeFixedUtf8, } from "./fixed.js";
|
|
3
3
|
import { SpanLayoutWriter } from "./writer-spans.js";
|
|
4
4
|
export class ByteVectorLayoutWriter extends SpanLayoutWriter {
|
|
5
5
|
writeBytesVector(descriptorOffset, values) {
|
|
6
|
+
return this.writeBytesVectorAtBase(this.baseOffset, descriptorOffset, values);
|
|
7
|
+
}
|
|
8
|
+
writeBytesVectorAtBase(descriptorBaseOffset, descriptorOffset, values) {
|
|
6
9
|
const tableOffset = this.reserve(values.length * SPAN32_BYTE_LENGTH, 4);
|
|
10
|
+
const tableAbsoluteOffset = this.baseOffset + tableOffset;
|
|
7
11
|
const descriptor = {
|
|
8
|
-
relOffset:
|
|
12
|
+
relOffset: this.relativeOffsetFromBase(descriptorBaseOffset, tableAbsoluteOffset, "Vector32.relOffset"),
|
|
9
13
|
count: values.length,
|
|
10
14
|
};
|
|
11
|
-
writeVector32Descriptor(this.view,
|
|
15
|
+
writeVector32Descriptor(this.view, descriptorBaseOffset + descriptorOffset, descriptor, this.littleEndian);
|
|
12
16
|
values.forEach((value, index) => {
|
|
13
|
-
const span = this.
|
|
14
|
-
writeSpan32Descriptor(this.view,
|
|
17
|
+
const span = this.appendBytesAtBase(descriptorBaseOffset, value);
|
|
18
|
+
writeSpan32Descriptor(this.view, tableAbsoluteOffset + index * SPAN32_BYTE_LENGTH, span, this.littleEndian);
|
|
15
19
|
});
|
|
16
20
|
return descriptor;
|
|
17
21
|
}
|
|
18
22
|
writeUtf8Vector(descriptorOffset, values, encoder = UTF8_ENCODER) {
|
|
19
|
-
return this.
|
|
23
|
+
return this.writeUtf8VectorAtBase(this.baseOffset, descriptorOffset, values, encoder);
|
|
24
|
+
}
|
|
25
|
+
writeUtf8VectorAtBase(descriptorBaseOffset, descriptorOffset, values, encoder = UTF8_ENCODER) {
|
|
26
|
+
return this.writeBytesVectorAtBase(descriptorBaseOffset, descriptorOffset, values.map((value) => encoder.encode(value)));
|
|
20
27
|
}
|
|
21
28
|
writeTextVector(descriptorOffset, values, encoding = "utf8") {
|
|
22
|
-
return this.
|
|
29
|
+
return this.writeTextVectorAtBase(this.baseOffset, descriptorOffset, values, encoding);
|
|
30
|
+
}
|
|
31
|
+
writeTextVectorAtBase(descriptorBaseOffset, descriptorOffset, values, encoding = "utf8") {
|
|
32
|
+
return this.writeBytesVectorAtBase(descriptorBaseOffset, descriptorOffset, values.map((value) => encodeText(value, encoding)));
|
|
23
33
|
}
|
|
24
34
|
writeFixedBytesVector(descriptorOffset, values, elementByteLength) {
|
|
35
|
+
return this.writeFixedBytesVectorAtBase(this.baseOffset, descriptorOffset, values, elementByteLength);
|
|
36
|
+
}
|
|
37
|
+
writeFixedBytesVectorAtBase(descriptorBaseOffset, descriptorOffset, values, elementByteLength) {
|
|
25
38
|
const payloadOffset = this.reserve(values.length * elementByteLength, 1);
|
|
39
|
+
const payloadAbsoluteOffset = this.baseOffset + payloadOffset;
|
|
26
40
|
const descriptor = {
|
|
27
|
-
relOffset:
|
|
41
|
+
relOffset: this.relativeOffsetFromBase(descriptorBaseOffset, payloadAbsoluteOffset, "Vector32.relOffset"),
|
|
28
42
|
count: values.length,
|
|
29
43
|
};
|
|
30
|
-
writeVector32Descriptor(this.view,
|
|
44
|
+
writeVector32Descriptor(this.view, descriptorBaseOffset + descriptorOffset, descriptor, this.littleEndian);
|
|
31
45
|
values.forEach((value, index) => {
|
|
32
|
-
writeFixedBytes(this.view.buffer, this.view.byteOffset +
|
|
46
|
+
writeFixedBytes(this.view.buffer, this.view.byteOffset + payloadAbsoluteOffset + index * elementByteLength, elementByteLength, value);
|
|
33
47
|
});
|
|
34
48
|
return descriptor;
|
|
35
49
|
}
|
|
36
50
|
writeFixedUtf8Vector(descriptorOffset, values, elementByteLength, encoder = UTF8_ENCODER) {
|
|
51
|
+
return this.writeFixedUtf8VectorAtBase(this.baseOffset, descriptorOffset, values, elementByteLength, encoder);
|
|
52
|
+
}
|
|
53
|
+
writeFixedUtf8VectorAtBase(descriptorBaseOffset, descriptorOffset, values, elementByteLength, encoder = UTF8_ENCODER) {
|
|
37
54
|
const payloadOffset = this.reserve(values.length * elementByteLength, 1);
|
|
55
|
+
const payloadAbsoluteOffset = this.baseOffset + payloadOffset;
|
|
38
56
|
const descriptor = {
|
|
39
|
-
relOffset:
|
|
57
|
+
relOffset: this.relativeOffsetFromBase(descriptorBaseOffset, payloadAbsoluteOffset, "Vector32.relOffset"),
|
|
40
58
|
count: values.length,
|
|
41
59
|
};
|
|
42
|
-
writeVector32Descriptor(this.view,
|
|
60
|
+
writeVector32Descriptor(this.view, descriptorBaseOffset + descriptorOffset, descriptor, this.littleEndian);
|
|
43
61
|
values.forEach((value, index) => {
|
|
44
|
-
writeFixedUtf8(this.view.buffer, this.view.byteOffset +
|
|
62
|
+
writeFixedUtf8(this.view.buffer, this.view.byteOffset + payloadAbsoluteOffset + index * elementByteLength, elementByteLength, value, encoder);
|
|
45
63
|
});
|
|
46
64
|
return descriptor;
|
|
47
65
|
}
|
|
48
66
|
writeFixedTextVector(descriptorOffset, values, elementByteLength, encoding = "utf8") {
|
|
67
|
+
return this.writeFixedTextVectorAtBase(this.baseOffset, descriptorOffset, values, elementByteLength, encoding);
|
|
68
|
+
}
|
|
69
|
+
writeFixedTextVectorAtBase(descriptorBaseOffset, descriptorOffset, values, elementByteLength, encoding = "utf8") {
|
|
49
70
|
const payloadOffset = this.reserve(values.length * elementByteLength, 1);
|
|
71
|
+
const payloadAbsoluteOffset = this.baseOffset + payloadOffset;
|
|
50
72
|
const descriptor = {
|
|
51
|
-
relOffset:
|
|
73
|
+
relOffset: this.relativeOffsetFromBase(descriptorBaseOffset, payloadAbsoluteOffset, "Vector32.relOffset"),
|
|
52
74
|
count: values.length,
|
|
53
75
|
};
|
|
54
|
-
writeVector32Descriptor(this.view,
|
|
76
|
+
writeVector32Descriptor(this.view, descriptorBaseOffset + descriptorOffset, descriptor, this.littleEndian);
|
|
55
77
|
values.forEach((value, index) => {
|
|
56
|
-
writeFixedText(this.view.buffer, this.view.byteOffset +
|
|
78
|
+
writeFixedText(this.view.buffer, this.view.byteOffset + payloadAbsoluteOffset + index * elementByteLength, elementByteLength, value, encoding);
|
|
57
79
|
});
|
|
58
80
|
return descriptor;
|
|
59
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-byte-vectors.js","sourceRoot":"","sources":["../src/writer-byte-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"writer-byte-vectors.js","sourceRoot":"","sources":["../src/writer-byte-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,GAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAC1D,gBAAgB,CACd,gBAAwB,EACxB,MAAmD;QAEnD,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED,sBAAsB,CACpB,oBAA4B,EAC5B,gBAAwB,EACxB,MAAmD;QAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;QAC1D,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,sBAAsB,CACpC,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,CACrB;YACD,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,uBAAuB,CACrB,IAAI,CAAC,IAAI,EACT,oBAAoB,GAAG,gBAAgB,EACvC,UAAU,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACjE,qBAAqB,CACnB,IAAI,CAAC,IAAI,EACT,mBAAmB,GAAG,KAAK,GAAG,kBAAkB,EAChD,IAAI,EACJ,IAAI,CAAC,YAAY,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,eAAe,CACb,gBAAwB,EACxB,MAAyB,EACzB,OAAO,GAAG,YAAY;QAEtB,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,qBAAqB,CACnB,oBAA4B,EAC5B,gBAAwB,EACxB,MAAyB,EACzB,OAAO,GAAG,YAAY;QAEtB,OAAO,IAAI,CAAC,sBAAsB,CAChC,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,eAAe,CACb,gBAAwB,EACxB,MAAyB,EACzB,WAAyB,MAAM;QAE/B,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzF,CAAC;IAED,qBAAqB,CACnB,oBAA4B,EAC5B,gBAAwB,EACxB,MAAyB,EACzB,WAAyB,MAAM;QAE/B,OAAO,IAAI,CAAC,sBAAsB,CAChC,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CACnD,CAAC;IACJ,CAAC;IAED,qBAAqB,CACnB,gBAAwB,EACxB,MAAmD,EACnD,iBAAyB;QAEzB,OAAO,IAAI,CAAC,2BAA2B,CACrC,IAAI,CAAC,UAAU,EACf,gBAAgB,EAChB,MAAM,EACN,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,2BAA2B,CACzB,oBAA4B,EAC5B,gBAAwB,EACxB,MAAmD,EACnD,iBAAyB;QAEzB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9D,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,sBAAsB,CACpC,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CACrB;YACD,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,uBAAuB,CACrB,IAAI,CAAC,IAAI,EACT,oBAAoB,GAAG,gBAAgB,EACvC,UAAU,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,eAAe,CACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,qBAAqB,GAAG,KAAK,GAAG,iBAAiB,EACxE,iBAAiB,EACjB,KAAK,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oBAAoB,CAClB,gBAAwB,EACxB,MAAyB,EACzB,iBAAyB,EACzB,OAAO,GAAG,YAAY;QAEtB,OAAO,IAAI,CAAC,0BAA0B,CACpC,IAAI,CAAC,UAAU,EACf,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,0BAA0B,CACxB,oBAA4B,EAC5B,gBAAwB,EACxB,MAAyB,EACzB,iBAAyB,EACzB,OAAO,GAAG,YAAY;QAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9D,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,sBAAsB,CACpC,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CACrB;YACD,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,uBAAuB,CACrB,IAAI,CAAC,IAAI,EACT,oBAAoB,GAAG,gBAAgB,EACvC,UAAU,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,cAAc,CACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,qBAAqB,GAAG,KAAK,GAAG,iBAAiB,EACxE,iBAAiB,EACjB,KAAK,EACL,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oBAAoB,CAClB,gBAAwB,EACxB,MAAyB,EACzB,iBAAyB,EACzB,WAAyB,MAAM;QAE/B,OAAO,IAAI,CAAC,0BAA0B,CACpC,IAAI,CAAC,UAAU,EACf,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,0BAA0B,CACxB,oBAA4B,EAC5B,gBAAwB,EACxB,MAAyB,EACzB,iBAAyB,EACzB,WAAyB,MAAM;QAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9D,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,sBAAsB,CACpC,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CACrB;YACD,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,uBAAuB,CACrB,IAAI,CAAC,IAAI,EACT,oBAAoB,GAAG,gBAAgB,EACvC,UAAU,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,cAAc,CACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,qBAAqB,GAAG,KAAK,GAAG,iBAAiB,EACxE,iBAAiB,EACjB,KAAK,EACL,QAAQ,CACT,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -2,5 +2,6 @@ import { type Vector32Descriptor } from "./descriptor32.js";
|
|
|
2
2
|
import { StructVectorLayoutWriter } from "./writer-struct-vectors.js";
|
|
3
3
|
export declare class PointerVectorLayoutWriter extends StructVectorLayoutWriter {
|
|
4
4
|
writePointerVector(descriptorOffset: number, targetOffsets: readonly (number | null)[], targetByteLength: number): Vector32Descriptor;
|
|
5
|
+
writePointerVectorAtBase(descriptorBaseOffset: number, descriptorOffset: number, targetOffsets: readonly (number | null)[], targetByteLength: number): Vector32Descriptor;
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=writer-pointer-vectors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-pointer-vectors.d.ts","sourceRoot":"","sources":["../src/writer-pointer-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,yBAA0B,SAAQ,wBAAwB;IACrE,kBAAkB,CAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACzC,gBAAgB,EAAE,MAAM,GACvB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"writer-pointer-vectors.d.ts","sourceRoot":"","sources":["../src/writer-pointer-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,yBAA0B,SAAQ,wBAAwB;IACrE,kBAAkB,CAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACzC,gBAAgB,EAAE,MAAM,GACvB,kBAAkB;IASrB,wBAAwB,CACtB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACzC,gBAAgB,EAAE,MAAM,GACvB,kBAAkB;CAsCtB"}
|
|
@@ -4,16 +4,19 @@ import { assertDataViewRange, assertNonNegativeInteger } from "./range.js";
|
|
|
4
4
|
import { StructVectorLayoutWriter } from "./writer-struct-vectors.js";
|
|
5
5
|
export class PointerVectorLayoutWriter extends StructVectorLayoutWriter {
|
|
6
6
|
writePointerVector(descriptorOffset, targetOffsets, targetByteLength) {
|
|
7
|
+
return this.writePointerVectorAtBase(this.baseOffset, descriptorOffset, targetOffsets, targetByteLength);
|
|
8
|
+
}
|
|
9
|
+
writePointerVectorAtBase(descriptorBaseOffset, descriptorOffset, targetOffsets, targetByteLength) {
|
|
7
10
|
assertNonNegativeInteger(targetByteLength, "targetByteLength");
|
|
8
11
|
const payloadOffset = this.reserve(targetOffsets.length * POINTER32_BYTE_LENGTH, 4);
|
|
12
|
+
const payloadAbsoluteOffset = this.baseOffset + payloadOffset;
|
|
9
13
|
const descriptor = {
|
|
10
|
-
relOffset:
|
|
14
|
+
relOffset: this.relativeOffsetFromBase(descriptorBaseOffset, payloadAbsoluteOffset, "Vector32.relOffset"),
|
|
11
15
|
count: targetOffsets.length,
|
|
12
16
|
};
|
|
13
|
-
writeVector32Descriptor(this.view,
|
|
17
|
+
writeVector32Descriptor(this.view, descriptorBaseOffset + descriptorOffset, descriptor, this.littleEndian);
|
|
14
18
|
targetOffsets.forEach((targetOffset, index) => {
|
|
15
|
-
const
|
|
16
|
-
const absolutePointerOffset = this.baseOffset + pointerOffset;
|
|
19
|
+
const absolutePointerOffset = payloadAbsoluteOffset + index * POINTER32_BYTE_LENGTH;
|
|
17
20
|
if (targetOffset !== null) {
|
|
18
21
|
assertDataViewRange(this.view, targetOffset, targetByteLength);
|
|
19
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-pointer-vectors.js","sourceRoot":"","sources":["../src/writer-pointer-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA2B,MAAM,mBAAmB,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IACrE,kBAAkB,CAChB,gBAAwB,EACxB,aAAyC,EACzC,gBAAwB;QAExB,wBAAwB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QAE/D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"writer-pointer-vectors.js","sourceRoot":"","sources":["../src/writer-pointer-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA2B,MAAM,mBAAmB,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IACrE,kBAAkB,CAChB,gBAAwB,EACxB,aAAyC,EACzC,gBAAwB;QAExB,OAAO,IAAI,CAAC,wBAAwB,CAClC,IAAI,CAAC,UAAU,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,oBAA4B,EAC5B,gBAAwB,EACxB,aAAyC,EACzC,gBAAwB;QAExB,wBAAwB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QAE/D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9D,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,sBAAsB,CACpC,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CACrB;YACD,KAAK,EAAE,aAAa,CAAC,MAAM;SAC5B,CAAC;QACF,uBAAuB,CACrB,IAAI,CAAC,IAAI,EACT,oBAAoB,GAAG,gBAAgB,EACvC,UAAU,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,qBAAqB,GAAG,qBAAqB,GAAG,KAAK,GAAG,qBAAqB,CAAC;YACpF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,KAAK,GACT,YAAY,KAAK,IAAI;gBACnB,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;YACnE,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -3,5 +3,6 @@ import { type ScalarKind } from "./scalar.js";
|
|
|
3
3
|
import { ByteVectorLayoutWriter } from "./writer-byte-vectors.js";
|
|
4
4
|
export declare class ScalarVectorLayoutWriter extends ByteVectorLayoutWriter {
|
|
5
5
|
writeScalarVector<T extends number | bigint | boolean>(descriptorOffset: number, scalarKind: ScalarKind, values: readonly T[]): Vector32Descriptor;
|
|
6
|
+
writeScalarVectorAtBase<T extends number | bigint | boolean>(descriptorBaseOffset: number, descriptorOffset: number, scalarKind: ScalarKind, values: readonly T[]): Vector32Descriptor;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=writer-scalar-vectors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-scalar-vectors.d.ts","sourceRoot":"","sources":["../src/writer-scalar-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACnD,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"writer-scalar-vectors.d.ts","sourceRoot":"","sources":["../src/writer-scalar-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACnD,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,kBAAkB;IAIrB,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACzD,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,kBAAkB;CA+BtB"}
|
|
@@ -3,15 +3,19 @@ import { scalarByteLength, writeScalar } from "./scalar.js";
|
|
|
3
3
|
import { ByteVectorLayoutWriter } from "./writer-byte-vectors.js";
|
|
4
4
|
export class ScalarVectorLayoutWriter extends ByteVectorLayoutWriter {
|
|
5
5
|
writeScalarVector(descriptorOffset, scalarKind, values) {
|
|
6
|
+
return this.writeScalarVectorAtBase(this.baseOffset, descriptorOffset, scalarKind, values);
|
|
7
|
+
}
|
|
8
|
+
writeScalarVectorAtBase(descriptorBaseOffset, descriptorOffset, scalarKind, values) {
|
|
6
9
|
const stride = scalarByteLength(scalarKind);
|
|
7
10
|
const payloadOffset = this.reserve(values.length * stride, stride);
|
|
11
|
+
const payloadAbsoluteOffset = this.baseOffset + payloadOffset;
|
|
8
12
|
const descriptor = {
|
|
9
|
-
relOffset:
|
|
13
|
+
relOffset: this.relativeOffsetFromBase(descriptorBaseOffset, payloadAbsoluteOffset, "Vector32.relOffset"),
|
|
10
14
|
count: values.length,
|
|
11
15
|
};
|
|
12
|
-
writeVector32Descriptor(this.view,
|
|
16
|
+
writeVector32Descriptor(this.view, descriptorBaseOffset + descriptorOffset, descriptor, this.littleEndian);
|
|
13
17
|
values.forEach((value, index) => {
|
|
14
|
-
writeScalar(this.view, scalarKind,
|
|
18
|
+
writeScalar(this.view, scalarKind, payloadAbsoluteOffset + index * stride, value, this.littleEndian);
|
|
15
19
|
});
|
|
16
20
|
return descriptor;
|
|
17
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-scalar-vectors.js","sourceRoot":"","sources":["../src/writer-scalar-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA2B,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE,iBAAiB,CACf,gBAAwB,EACxB,UAAsB,EACtB,MAAoB;QAEpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"writer-scalar-vectors.js","sourceRoot":"","sources":["../src/writer-scalar-vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA2B,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE,iBAAiB,CACf,gBAAwB,EACxB,UAAsB,EACtB,MAAoB;QAEpB,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7F,CAAC;IAED,uBAAuB,CACrB,oBAA4B,EAC5B,gBAAwB,EACxB,UAAsB,EACtB,MAAoB;QAEpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9D,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,sBAAsB,CACpC,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CACrB;YACD,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,uBAAuB,CACrB,IAAI,CAAC,IAAI,EACT,oBAAoB,GAAG,gBAAgB,EACvC,UAAU,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,WAAW,CACT,IAAI,CAAC,IAAI,EACT,UAAU,EACV,qBAAqB,GAAG,KAAK,GAAG,MAAM,EACtC,KAAK,EACL,IAAI,CAAC,YAAY,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
package/dist/writer-spans.d.ts
CHANGED
|
@@ -3,7 +3,10 @@ import { type TextEncoding } from "./fixed.js";
|
|
|
3
3
|
import { DynamicLayoutArena } from "./writer-arena.js";
|
|
4
4
|
export declare class SpanLayoutWriter extends DynamicLayoutArena {
|
|
5
5
|
writeBytes(descriptorOffset: number, bytes: ArrayLike<number> | Uint8Array): Span32Descriptor;
|
|
6
|
+
writeBytesAtBase(descriptorBaseOffset: number, descriptorOffset: number, bytes: ArrayLike<number> | Uint8Array): Span32Descriptor;
|
|
6
7
|
writeUtf8(descriptorOffset: number, text: string, encoder?: TextEncoder): Span32Descriptor;
|
|
8
|
+
writeUtf8AtBase(descriptorBaseOffset: number, descriptorOffset: number, text: string, encoder?: TextEncoder): Span32Descriptor;
|
|
7
9
|
writeText(descriptorOffset: number, text: string, encoding?: TextEncoding): Span32Descriptor;
|
|
10
|
+
writeTextAtBase(descriptorBaseOffset: number, descriptorOffset: number, text: string, encoding?: TextEncoding): Span32Descriptor;
|
|
8
11
|
}
|
|
9
12
|
//# sourceMappingURL=writer-spans.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-spans.d.ts","sourceRoot":"","sources":["../src/writer-spans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"writer-spans.d.ts","sourceRoot":"","sources":["../src/writer-spans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,gBAAgB;IAI7F,gBAAgB,CACd,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,GACpC,gBAAgB;IAWnB,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,cAAe,GAAG,gBAAgB;IAI3F,eAAe,CACb,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,cAAe,GACrB,gBAAgB;IAWnB,SAAS,CACP,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,YAAqB,GAC9B,gBAAgB;IAInB,eAAe,CACb,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,YAAqB,GAC9B,gBAAgB;CAUpB"}
|