capnstruct 0.0.0-stage → 0.1.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/README.md +136 -2
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +75 -0
- package/dist/cli.js.map +1 -0
- package/dist/codegen.d.ts +23 -0
- package/dist/codegen.d.ts.map +1 -0
- package/dist/codegen.js +218 -0
- package/dist/codegen.js.map +1 -0
- package/dist/index.d.ts +358 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1076 -0
- package/dist/index.js.map +1 -0
- package/package.json +63 -4
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { type GoCodegenOptions, type RustCodegenOptions, type SchemaCollection, generateGo, generateRust, toGoStruct, toRustReprC } from './codegen.js';
|
|
2
|
+
export { generateGo, generateRust, toGoStruct, toRustReprC, type GoCodegenOptions, type RustCodegenOptions, type SchemaCollection, };
|
|
3
|
+
export type PrimitiveName = 'u8' | 'i8' | 'u16' | 'i16' | 'u32' | 'i32' | 'u64' | 'i64' | 'f16' | 'f32' | 'f64' | 'bool';
|
|
4
|
+
export interface TypedArrayConstructor {
|
|
5
|
+
new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): ArrayBufferView & Record<number, number | bigint | boolean>;
|
|
6
|
+
new (length: number): ArrayBufferView & Record<number, number | bigint | boolean>;
|
|
7
|
+
}
|
|
8
|
+
export interface PrimitiveDesc<T extends PrimitiveName = PrimitiveName> {
|
|
9
|
+
readonly kind: 'primitive';
|
|
10
|
+
readonly type: T;
|
|
11
|
+
readonly rustType: string;
|
|
12
|
+
readonly size: number;
|
|
13
|
+
readonly align: number;
|
|
14
|
+
readonly signed: boolean;
|
|
15
|
+
readonly float: boolean;
|
|
16
|
+
readonly bigint: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface NullablePrimitiveDesc<T extends PrimitiveName = PrimitiveName> {
|
|
19
|
+
readonly kind: 'primitive';
|
|
20
|
+
readonly type: T;
|
|
21
|
+
readonly rustType: string;
|
|
22
|
+
readonly size: number;
|
|
23
|
+
readonly align: number;
|
|
24
|
+
readonly signed: boolean;
|
|
25
|
+
readonly float: boolean;
|
|
26
|
+
readonly bigint: boolean;
|
|
27
|
+
readonly nullable: true;
|
|
28
|
+
}
|
|
29
|
+
export interface FixedStrDesc<N extends number = number> {
|
|
30
|
+
readonly kind: 'primitive';
|
|
31
|
+
readonly type: 'fixedStr';
|
|
32
|
+
readonly length: N;
|
|
33
|
+
readonly size: N;
|
|
34
|
+
readonly align: 1;
|
|
35
|
+
readonly rustType: string;
|
|
36
|
+
}
|
|
37
|
+
export interface FixedBytesDesc<N extends number = number> {
|
|
38
|
+
readonly kind: 'primitive';
|
|
39
|
+
readonly type: 'fixedBytes';
|
|
40
|
+
readonly length: N;
|
|
41
|
+
readonly size: N;
|
|
42
|
+
readonly align: 1;
|
|
43
|
+
readonly rustType: string;
|
|
44
|
+
}
|
|
45
|
+
export interface StrDesc {
|
|
46
|
+
readonly kind: 'str';
|
|
47
|
+
readonly size: 8;
|
|
48
|
+
readonly align: 4;
|
|
49
|
+
readonly rustType: 'CapnStr';
|
|
50
|
+
}
|
|
51
|
+
export interface ArrayDesc<E extends FieldDesc = FieldDesc, N extends number = number> {
|
|
52
|
+
readonly kind: 'array';
|
|
53
|
+
readonly element: E;
|
|
54
|
+
readonly length: N;
|
|
55
|
+
readonly size: number;
|
|
56
|
+
readonly align: number;
|
|
57
|
+
readonly rustType: string;
|
|
58
|
+
}
|
|
59
|
+
export type SelfRef = {
|
|
60
|
+
readonly kind: 'self';
|
|
61
|
+
} | string;
|
|
62
|
+
export interface SliceDesc<E extends FieldDesc | SelfRef = FieldDesc> {
|
|
63
|
+
readonly kind: 'slice';
|
|
64
|
+
readonly element: E;
|
|
65
|
+
readonly size: 8;
|
|
66
|
+
readonly align: 4;
|
|
67
|
+
readonly rustType: string;
|
|
68
|
+
}
|
|
69
|
+
export interface RefDesc<S extends StructDefLike<any> | SelfRef = StructDefLike<any>> {
|
|
70
|
+
readonly kind: 'ref';
|
|
71
|
+
readonly element: S;
|
|
72
|
+
readonly size: 8;
|
|
73
|
+
readonly align: 4;
|
|
74
|
+
readonly rustType: string;
|
|
75
|
+
}
|
|
76
|
+
export interface StructDefLike<F extends FieldRecord = FieldRecord> {
|
|
77
|
+
readonly kind: 'struct';
|
|
78
|
+
readonly name: string;
|
|
79
|
+
readonly rustType: string;
|
|
80
|
+
readonly size: number;
|
|
81
|
+
readonly stride: number;
|
|
82
|
+
readonly align: number;
|
|
83
|
+
readonly schema: F;
|
|
84
|
+
readonly fields: {
|
|
85
|
+
readonly [K in keyof F]: FieldLayout<F[K]>;
|
|
86
|
+
};
|
|
87
|
+
readonly fieldList: readonly FieldLayout[];
|
|
88
|
+
}
|
|
89
|
+
export type FieldDesc = PrimitiveDesc | NullablePrimitiveDesc | FixedStrDesc | FixedBytesDesc | StrDesc | ArrayDesc | SliceDesc<any> | RefDesc<any> | StructDefLike;
|
|
90
|
+
export type FieldRecord = Record<string, FieldDesc>;
|
|
91
|
+
export type PrimitiveTsType<T extends PrimitiveName> = T extends 'u64' | 'i64' ? bigint : T extends 'bool' ? boolean : number;
|
|
92
|
+
export type PrimitiveInputType<T extends PrimitiveName> = T extends 'u64' | 'i64' ? bigint | number : T extends 'bool' ? boolean | number : number;
|
|
93
|
+
export type TypedArrayFor<T extends PrimitiveName> = T extends 'u8' ? Uint8Array : T extends 'i8' ? Int8Array : T extends 'u16' ? Uint16Array : T extends 'i16' ? Int16Array : T extends 'f16' ? Uint16Array : T extends 'u32' ? Uint32Array : T extends 'i32' ? Int32Array : T extends 'u64' ? BigUint64Array : T extends 'i64' ? BigInt64Array : T extends 'f32' ? Float32Array : T extends 'f64' ? Float64Array : boolean[];
|
|
94
|
+
export type FieldValue<D extends FieldDesc = FieldDesc, SelfF extends FieldRecord = FieldRecord> = D extends NullablePrimitiveDesc<infer P> ? PrimitiveTsType<P> | null : D extends PrimitiveDesc<infer P> ? PrimitiveTsType<P> : D extends StrDesc | FixedStrDesc ? string : D extends FixedBytesDesc ? Uint8Array : D extends ArrayDesc<infer E, number> ? E extends PrimitiveDesc<infer P> ? TypedArrayFor<P> : E extends StructDefLike<infer SF> ? StructArrayView<SF> : PlainFieldValue<E, SelfF>[] : D extends SliceDesc<infer E> ? E extends SelfRef ? StructArrayView<SelfF> : E extends PrimitiveDesc<infer P> ? TypedArrayFor<P> : E extends StructDefLike<infer SF> ? StructArrayView<SF> : E extends FieldDesc ? PlainFieldValue<E, SelfF>[] : never : D extends RefDesc<infer SF> ? SF extends SelfRef ? StructView<SelfF> | null : SF extends StructDefLike<infer F> ? StructView<F> | null : any : D extends StructDefLike<infer SF> ? StructView<SF> : never;
|
|
95
|
+
export type FieldInput<D extends FieldDesc = FieldDesc, SelfF extends FieldRecord = FieldRecord> = D extends NullablePrimitiveDesc<infer P> ? PrimitiveInputType<P> | null | undefined : D extends PrimitiveDesc<infer P> ? PrimitiveInputType<P> : D extends StrDesc | FixedStrDesc ? string : D extends FixedBytesDesc ? ArrayLike<number> | Iterable<number> : D extends ArrayDesc<infer E, number> ? E extends PrimitiveDesc<infer P> ? ArrayLike<PrimitiveInputType<P>> | Iterable<PrimitiveInputType<P>> : E extends StructDefLike<infer SF> ? ArrayLike<Partial<StructInput<SF>> | StructView<SF> | readonly unknown[]> | Iterable<Partial<StructInput<SF>> | StructView<SF> | readonly unknown[]> | ArrayBufferView | StructArrayView<SF> : E extends FieldDesc ? ArrayLike<FieldInput<E, SelfF>> | Iterable<FieldInput<E, SelfF>> : never : D extends SliceDesc<infer E> ? E extends SelfRef ? ArrayLike<Partial<StructInput<SelfF>> | StructView<SelfF> | readonly unknown[]> | Iterable<Partial<StructInput<SelfF>> | StructView<SelfF> | readonly unknown[]> | ArrayBufferView | StructArrayView<SelfF> : E extends PrimitiveDesc<infer P> ? ArrayLike<PrimitiveInputType<P>> | Iterable<PrimitiveInputType<P>> : E extends StructDefLike<infer SF> ? ArrayLike<Partial<StructInput<SF>> | StructView<SF> | readonly unknown[]> | Iterable<Partial<StructInput<SF>> | StructView<SF> | readonly unknown[]> | ArrayBufferView | StructArrayView<SF> : E extends FieldDesc ? ArrayLike<FieldInput<E, SelfF>> | Iterable<FieldInput<E, SelfF>> : never : D extends RefDesc<infer SF> ? SF extends SelfRef ? Partial<StructInput<SelfF>> | StructView<SelfF> | readonly unknown[] | null | undefined : SF extends StructDefLike<infer F> ? Partial<StructInput<F>> | StructView<F> | readonly unknown[] | null | undefined : any : D extends StructDefLike<infer SF> ? Partial<StructInput<SF>> | StructView<SF> | readonly unknown[] : never;
|
|
96
|
+
export type StructInput<F extends FieldRecord> = {
|
|
97
|
+
[K in keyof F]: FieldInput<F[K], F>;
|
|
98
|
+
};
|
|
99
|
+
export type StructValues<F extends FieldRecord> = {
|
|
100
|
+
[K in keyof F]: FieldValue<F[K], F>;
|
|
101
|
+
};
|
|
102
|
+
export type PlainFieldValue<D extends FieldDesc = FieldDesc, SelfF extends FieldRecord = FieldRecord> = D extends NullablePrimitiveDesc<infer P> ? PrimitiveTsType<P> | null : D extends PrimitiveDesc<infer P> ? PrimitiveTsType<P> : D extends StrDesc | FixedStrDesc ? string : D extends FixedBytesDesc ? number[] : D extends ArrayDesc<infer E, number> ? PlainFieldValue<E, SelfF>[] : D extends SliceDesc<infer E> ? E extends SelfRef ? PlainStructValues<SelfF>[] : E extends FieldDesc ? PlainFieldValue<E, SelfF>[] : never : D extends RefDesc<infer SF> ? SF extends SelfRef ? PlainStructValues<SelfF> | null : SF extends StructDefLike<infer F> ? PlainStructValues<F> | null : any : D extends StructDefLike<infer SF> ? PlainStructValues<SF> : never;
|
|
103
|
+
/** Plain JavaScript object representation of a struct schema `F`. */
|
|
104
|
+
export type PlainStructValues<F extends FieldRecord> = {
|
|
105
|
+
[K in keyof F]: PlainFieldValue<F[K], F>;
|
|
106
|
+
};
|
|
107
|
+
/** Infers the zero-copy `StructView` type from a `StructDef`. */
|
|
108
|
+
export type InferView<S extends StructDefLike<any>> = S extends StructDefLike<infer F> ? StructView<F> : never;
|
|
109
|
+
/** Infers the plain JavaScript object type (`toObject()`) from a `StructDef`. */
|
|
110
|
+
export type InferPlain<S extends StructDefLike<any>> = S extends StructDefLike<infer F> ? PlainStructValues<F> : never;
|
|
111
|
+
/** Infers the input object type accepted by `pack()`, `create()`, and `push()` from a `StructDef`. */
|
|
112
|
+
export type InferInput<S extends StructDefLike<any>> = S extends StructDefLike<infer F> ? Partial<StructInput<F>> : never;
|
|
113
|
+
/** Computed byte offset, size, and alignment of a single struct field. */
|
|
114
|
+
export interface FieldLayout<D extends FieldDesc = FieldDesc> {
|
|
115
|
+
readonly name: string;
|
|
116
|
+
readonly desc: D;
|
|
117
|
+
readonly offset: number;
|
|
118
|
+
readonly size: number;
|
|
119
|
+
readonly align: number;
|
|
120
|
+
}
|
|
121
|
+
/** Union of field keys in `F` whose descriptor is a fixed-width numeric/boolean primitive (`u8`..`f64`, `bool`). */
|
|
122
|
+
export type PrimitiveFieldKeys<F extends FieldRecord> = {
|
|
123
|
+
[K in keyof F]: F[K] extends PrimitiveDesc<any> ? K : never;
|
|
124
|
+
}[keyof F];
|
|
125
|
+
/** Options for wrapping a binary buffer in a `StructView` or `StructArrayView`. */
|
|
126
|
+
export interface ViewOptions {
|
|
127
|
+
/** Byte offset where the struct or struct table begins. */
|
|
128
|
+
byteOffset?: number;
|
|
129
|
+
/** Base byte offset from which relative tail pointers (`str` / `slice`) are resolved. */
|
|
130
|
+
baseOffset?: number;
|
|
131
|
+
/** Explicit number of rows when wrapping a `StructArrayView`. */
|
|
132
|
+
count?: number;
|
|
133
|
+
/** Wire byte stride per struct (used for forward/backward schema evolution). */
|
|
134
|
+
stride?: number;
|
|
135
|
+
}
|
|
136
|
+
/** Supported binary backing sources (`Uint8Array`, `ArrayBuffer`, `DataView`, `WebAssembly.Memory`, `WasmArena`). */
|
|
137
|
+
export type BufferSourceInput = ArrayBufferLike | ArrayBufferView | WebAssembly.Memory | WasmArena;
|
|
138
|
+
/** Unsigned 8-bit integer (`0..255`, 1 byte, 1-byte aligned). */
|
|
139
|
+
export declare const u8: PrimitiveDesc<'u8'>;
|
|
140
|
+
/** Signed 8-bit integer (`-128..127`, 1 byte, 1-byte aligned). */
|
|
141
|
+
export declare const i8: PrimitiveDesc<'i8'>;
|
|
142
|
+
/** Little-endian unsigned 16-bit integer (`0..65535`, 2 bytes, 2-byte aligned). */
|
|
143
|
+
export declare const u16: PrimitiveDesc<'u16'>;
|
|
144
|
+
/** Little-endian signed 16-bit integer (`-32768..32767`, 2 bytes, 2-byte aligned). */
|
|
145
|
+
export declare const i16: PrimitiveDesc<'i16'>;
|
|
146
|
+
/** Little-endian unsigned 32-bit integer (4 bytes, 4-byte aligned). */
|
|
147
|
+
export declare const u32: PrimitiveDesc<'u32'>;
|
|
148
|
+
/** Little-endian signed 32-bit integer (4 bytes, 4-byte aligned). */
|
|
149
|
+
export declare const i32: PrimitiveDesc<'i32'>;
|
|
150
|
+
/** Little-endian unsigned 64-bit integer (`bigint`, 8 bytes, 8-byte aligned). */
|
|
151
|
+
export declare const u64: PrimitiveDesc<'u64'>;
|
|
152
|
+
/** Little-endian signed 64-bit integer (`bigint`, 8 bytes, 8-byte aligned). */
|
|
153
|
+
export declare const i64: PrimitiveDesc<'i64'>;
|
|
154
|
+
/** IEEE 754 16-bit half-precision float (2 bytes, 2-byte aligned). */
|
|
155
|
+
export declare const f16: PrimitiveDesc<'f16'>;
|
|
156
|
+
/** IEEE 754 32-bit float (4 bytes, 4-byte aligned). */
|
|
157
|
+
export declare const f32: PrimitiveDesc<'f32'>;
|
|
158
|
+
/** IEEE 754 64-bit float (8 bytes, 8-byte aligned). */
|
|
159
|
+
export declare const f64: PrimitiveDesc<'f64'>;
|
|
160
|
+
/** 1-byte boolean (`0` or `1`, 1-byte aligned). */
|
|
161
|
+
export declare const bool: PrimitiveDesc<'bool'>;
|
|
162
|
+
/** Inline fixed-length null-padded UTF-8 string `[u8; N]` (`align: 1, size: length`) with zero tail indirection. */
|
|
163
|
+
export declare function fixedStr<N extends number>(length: N): FixedStrDesc<N>;
|
|
164
|
+
/** Inline fixed-length byte array `[u8; N]` (`align: 1, size: length`) read as a zero-copy `Uint8Array`. */
|
|
165
|
+
export declare function fixedBytes<N extends number>(length: N): FixedBytesDesc<N>;
|
|
166
|
+
/** Maps an inline sentinel value (e.g. `-32768` for `i16` or `NaN` for `f32`) to `null` in JS with 0 extra wire bytes. */
|
|
167
|
+
export declare function sentinel<P extends PrimitiveDesc<any>>(primDesc: P, nullValue: PrimitiveTsType<P['type']>): NullablePrimitiveDesc<P['type']>;
|
|
168
|
+
/** Alias for `sentinel(primDesc, nullValue)`. */
|
|
169
|
+
export declare const nullable: typeof sentinel;
|
|
170
|
+
/** Fixed-point scaled primitive (stores `Math.round(val * factor)` in `primDesc`, reads `raw / factor`). */
|
|
171
|
+
export declare function scaled<P extends PrimitiveDesc<any>>(primDesc: P, factor: number, nullOpt?: {
|
|
172
|
+
null?: number;
|
|
173
|
+
} | number): PrimitiveDesc<'f64'>;
|
|
174
|
+
export declare function scaled<P extends PrimitiveDesc<any>>(primDesc: P, factor: number, nullOpt: {
|
|
175
|
+
null: number;
|
|
176
|
+
} | number): NullablePrimitiveDesc<'f64'>;
|
|
177
|
+
/** Variable-length UTF-8 string stored in the tail arena via an 8-byte `[u32 off, u32 len]` descriptor. */
|
|
178
|
+
export declare const str: StrDesc;
|
|
179
|
+
export declare function fixedArray<E extends FieldDesc, N extends number>(element: E, length: N): ArrayDesc<E, N>;
|
|
180
|
+
/** Alias for `fixedArray(element, length)`. */
|
|
181
|
+
export declare const array: typeof fixedArray;
|
|
182
|
+
/** Variable-length slice `CapnSlice<T>` stored in the tail arena via an 8-byte `[u32 off, u32 len]` descriptor. */
|
|
183
|
+
export declare function slice(element: SelfRef): SliceDesc<SelfRef>;
|
|
184
|
+
export declare function slice<E extends FieldDesc = FieldDesc>(element: E | (() => E)): SliceDesc<E>;
|
|
185
|
+
/** Alias for `slice(element)`. */
|
|
186
|
+
export declare const list: typeof slice;
|
|
187
|
+
/** Nullable relative-offset pointer `CapnRef<T>` (`[u32 off, u32 present]`, 8 bytes inline, supports recursive & circular graphs). */
|
|
188
|
+
export declare function ref(target: SelfRef): RefDesc<SelfRef>;
|
|
189
|
+
export declare function ref<S extends StructDefLike<any> = StructDefLike<any>>(target: S | (() => S)): RefDesc<S>;
|
|
190
|
+
declare class MemView<F extends FieldRecord = FieldRecord> {
|
|
191
|
+
def: StructDefLike<F>;
|
|
192
|
+
byteLength: number;
|
|
193
|
+
/** Underlying `ArrayBuffer` (automatically re-bound if backed by a growing `WebAssembly.Memory` or `WasmArena`). */
|
|
194
|
+
get buffer(): ArrayBufferLike;
|
|
195
|
+
/** Byte offset of this view inside `buffer`. */
|
|
196
|
+
get byteOffset(): number;
|
|
197
|
+
/** Total active + dead bytes occupied by this view's fixed table and tail arena. */
|
|
198
|
+
get usedByteLength(): number;
|
|
199
|
+
/** Dead bytes in the tail arena reclaimable via `.compact()`. */
|
|
200
|
+
get deadByteLength(): number;
|
|
201
|
+
/** Ratio (`0..1`) of dead tail bytes to total used bytes. */
|
|
202
|
+
get compactionRatio(): number;
|
|
203
|
+
/** Returns a structured inspection summary (`{ schema, stride, rowCount, usedByteLength, deadByteLength, compactionRatio, data }`). */
|
|
204
|
+
toDebugObject(): {
|
|
205
|
+
schema: string;
|
|
206
|
+
stride: number;
|
|
207
|
+
rowCount: number;
|
|
208
|
+
usedByteLength: number;
|
|
209
|
+
deadByteLength: number;
|
|
210
|
+
compactionRatio: number;
|
|
211
|
+
data: unknown;
|
|
212
|
+
};
|
|
213
|
+
/** Re-packs only live fields and tail data into a tight `Uint8Array` and rebinds this view in-place. */
|
|
214
|
+
compact(): Uint8Array;
|
|
215
|
+
/** Wire-ready `Uint8Array` view over the underlying bytes (automatically compacts dead tail bytes if dirty). */
|
|
216
|
+
get bytes(): Uint8Array;
|
|
217
|
+
}
|
|
218
|
+
export declare class StructViewBase<F extends FieldRecord = FieldRecord> extends MemView<F> {
|
|
219
|
+
/** Re-positions this flyweight cursor to row `index` (supports negative indices from the end). */
|
|
220
|
+
seek(index: number): this;
|
|
221
|
+
/** Alias for `seek(index)` on a flyweight cursor. */
|
|
222
|
+
at: (index: number) => this;
|
|
223
|
+
/** Updates a single field in-place (accepts plain JS arrays/objects for `slice`, `fixedArray`, and nested structs). */
|
|
224
|
+
set<K extends keyof F>(field: K, value: FieldInput<F[K]>): this;
|
|
225
|
+
/** Updates multiple fields in-place from a partial object or positional tuple. */
|
|
226
|
+
set(values: Partial<StructInput<F>> | readonly unknown[]): this;
|
|
227
|
+
/** Updates multiple fields in-place from a partial object or positional tuple. */
|
|
228
|
+
setAll: (values: Partial<StructInput<F>> | readonly unknown[]) => this;
|
|
229
|
+
toObject(): PlainStructValues<F>;
|
|
230
|
+
/** Serializes this struct view to a plain object for `JSON.stringify()`. */
|
|
231
|
+
toJSON: () => PlainStructValues<F>;
|
|
232
|
+
}
|
|
233
|
+
/** Zero-copy view over a single binary struct with direct getter/setter properties for every field in `F`. */
|
|
234
|
+
export type StructView<F extends FieldRecord = FieldRecord> = StructViewBase<F> & StructValues<F>;
|
|
235
|
+
export declare function structView<F extends FieldRecord>(def: StructDef<F>, source: BufferSourceInput, byteOffset?: number | ViewOptions | StructDefLike<any>, baseOffset?: number, wireStride?: number): StructView<F>;
|
|
236
|
+
export declare class StructArrayView<F extends FieldRecord = FieldRecord> extends MemView<F> implements Iterable<StructView<F>> {
|
|
237
|
+
stride: number;
|
|
238
|
+
length: number;
|
|
239
|
+
constructor(def: StructDefLike<F>, source: BufferSourceInput, byteOffset?: number | ViewOptions | StructDefLike<any>, count?: number, baseOffset?: number, wireStride?: number);
|
|
240
|
+
/** Returns a reusable flyweight cursor positioned at `index`. */
|
|
241
|
+
cursor(index?: number): StructView<F>;
|
|
242
|
+
/** Returns a `StructView<F>` at `index` (supports negative indices from the end, e.g. `rows.at(-1)`). */
|
|
243
|
+
at(index: number, out?: StructView<F>): StructView<F>;
|
|
244
|
+
/** Writes `value` into the struct at `index` (supports negative indices from the end). */
|
|
245
|
+
set(index: number, value: Partial<StructInput<F>> | StructView<F> | readonly unknown[]): this;
|
|
246
|
+
/** Appends one or more rows to the binary array, automatically growing capacity if needed. */
|
|
247
|
+
push(...items: (Partial<StructInput<F>> | StructView<F> | readonly unknown[])[]): number;
|
|
248
|
+
pop(): PlainStructValues<F> | undefined;
|
|
249
|
+
/** Returns a zero-copy `StructArrayView` over `[begin, end)` without copying bytes. */
|
|
250
|
+
subarray(begin?: number, end?: number): StructArrayView<F>;
|
|
251
|
+
lowerBound<K extends PrimitiveFieldKeys<F>>(field: K, value: number | bigint): number;
|
|
252
|
+
/** Binary search: first row index `i` in `[0..length]` where `row[i][field] > value` ($O(\log N)$, 0 allocations). */
|
|
253
|
+
upperBound<K extends PrimitiveFieldKeys<F>>(field: K, value: number | bigint): number;
|
|
254
|
+
/** Returns a zero-copy `StructArrayView` slice over the sorted range `min <= row[field] <= max` in $O(\log N)$. */
|
|
255
|
+
rangeBy<K extends PrimitiveFieldKeys<F>>(field: K, min: number | bigint, max: number | bigint): StructArrayView<F>;
|
|
256
|
+
/** Filters rows with a reusable flyweight cursor (0 per-row JS objects) and copies matching binary rows into a `Uint8Array`. */
|
|
257
|
+
filterBytes(predicate: (row: StructView<F>, index: number) => boolean): Uint8Array;
|
|
258
|
+
/** Extracts a `TypedArray` column for primitive `field` (zero-copy when `stride === field.size`). */
|
|
259
|
+
column<K extends PrimitiveFieldKeys<F>>(field: K): F[K] extends PrimitiveDesc<infer P> ? TypedArrayFor<P> : never;
|
|
260
|
+
/** Bulk-writes a primitive column from `values` into `field` across all rows. */
|
|
261
|
+
setColumn<K extends PrimitiveFieldKeys<F>>(field: K, values: ArrayLike<number | bigint | boolean>): this;
|
|
262
|
+
/** Materializes all rows into an array of plain JavaScript objects. */
|
|
263
|
+
toObjects(): PlainStructValues<F>[];
|
|
264
|
+
/** Serializes this array of rows to an array of plain objects for `JSON.stringify()`. */
|
|
265
|
+
toJSON: () => PlainStructValues<F>[];
|
|
266
|
+
[Symbol.iterator](): Iterator<StructView<F>>;
|
|
267
|
+
}
|
|
268
|
+
export interface PlacedBytes extends Uint8Array {
|
|
269
|
+
readonly ptr: number;
|
|
270
|
+
as<F extends FieldRecord>(def: StructDef<F>, count?: number): StructArrayView<F>;
|
|
271
|
+
}
|
|
272
|
+
export type WasmTarget = WasmArena | WebAssembly.Memory | WebAssembly.Instance | {
|
|
273
|
+
readonly memory: WebAssembly.Memory;
|
|
274
|
+
readonly capn_alloc?: (byteLength: number) => number;
|
|
275
|
+
readonly alloc?: (byteLength: number) => number;
|
|
276
|
+
};
|
|
277
|
+
export interface WasmSlice<F extends FieldRecord = FieldRecord> {
|
|
278
|
+
readonly view: StructArrayView<F>;
|
|
279
|
+
readonly ptr: number;
|
|
280
|
+
readonly len: number;
|
|
281
|
+
readonly byteLength: number;
|
|
282
|
+
}
|
|
283
|
+
export declare class WasmArena {
|
|
284
|
+
readonly memory: WebAssembly.Memory | null;
|
|
285
|
+
readonly baseOffset: number;
|
|
286
|
+
offset: number;
|
|
287
|
+
constructor(backing?: WebAssembly.Memory | ArrayBuffer | number, baseOffset?: number);
|
|
288
|
+
sync(): this;
|
|
289
|
+
get buffer(): ArrayBuffer;
|
|
290
|
+
get byteLength(): number;
|
|
291
|
+
get bytesUsed(): number;
|
|
292
|
+
get u8(): Uint8Array;
|
|
293
|
+
get dataView(): DataView;
|
|
294
|
+
alignTo(align: number): number;
|
|
295
|
+
ensureCapacity(requiredByteLength: number): this;
|
|
296
|
+
alloc<F extends FieldRecord>(def: StructDef<F>, count?: number, zero?: boolean): StructArrayView<F>;
|
|
297
|
+
allocOne<F extends FieldRecord>(def: StructDef<F>, init?: Partial<StructInput<F>>): StructView<F>;
|
|
298
|
+
placeBytes<F extends FieldRecord = FieldRecord>(bytes: Uint8Array | ArrayBufferView, alignOrDef?: number | StructDefLike<F>): PlacedBytes;
|
|
299
|
+
view<F extends FieldRecord>(def: StructDef<F>, byteOffset: number, baseOffset?: number): StructView<F>;
|
|
300
|
+
viewArray<F extends FieldRecord>(def: StructDef<F>, byteOffset: number, count: number, baseOffset?: number): StructArrayView<F>;
|
|
301
|
+
reset(baseOffset?: number): this;
|
|
302
|
+
}
|
|
303
|
+
export declare const Arena: typeof WasmArena;
|
|
304
|
+
export declare class StructDef<F extends FieldRecord = FieldRecord> implements StructDefLike<F> {
|
|
305
|
+
readonly kind: 'struct';
|
|
306
|
+
readonly name: string;
|
|
307
|
+
readonly rustType: string;
|
|
308
|
+
readonly size: number;
|
|
309
|
+
readonly stride: number;
|
|
310
|
+
readonly align: number;
|
|
311
|
+
readonly schema: F;
|
|
312
|
+
readonly fields: {
|
|
313
|
+
readonly [K in keyof F]: FieldLayout<F[K]>;
|
|
314
|
+
};
|
|
315
|
+
readonly fieldList: readonly FieldLayout[];
|
|
316
|
+
/** Phantom type helper: `typeof MySchema.$view` resolves to `StructView<F>`. */
|
|
317
|
+
readonly $view: StructView<F>;
|
|
318
|
+
/** Phantom type helper: `typeof MySchema.$plain` resolves to `PlainStructValues<F>`. */
|
|
319
|
+
readonly $plain: PlainStructValues<F>;
|
|
320
|
+
/** Phantom type helper: `typeof MySchema.$input` resolves to `Partial<StructInput<F>>`. */
|
|
321
|
+
readonly $input: Partial<StructInput<F>>;
|
|
322
|
+
constructor(name: string, schemaOrBuilder: F | ((self: SelfRef) => F));
|
|
323
|
+
offsetOf<K extends keyof F>(field: K): number;
|
|
324
|
+
/** Allocates a single `StructView<F>` backed by a fresh buffer and optionally initializes fields. */
|
|
325
|
+
create(init?: Partial<StructInput<F>> | readonly unknown[]): StructView<F>;
|
|
326
|
+
/** Infers `Partial<StructInput<F>>` on a plain JS object literal (for building typed cyclic JS graphs without `any`). */
|
|
327
|
+
item(init: Partial<StructInput<F>>): Partial<StructInput<F>>;
|
|
328
|
+
view(source: BufferSourceInput, byteOffset?: number | ViewOptions | StructDefLike<any>, baseOffset?: number, wireStride?: number): StructView<F>;
|
|
329
|
+
/** Wraps a binary buffer in a zero-copy `StructArrayView<F>`. */
|
|
330
|
+
array(source: BufferSourceInput, byteOffset?: number | ViewOptions | StructDefLike<any>, count?: number, baseOffset?: number, wireStride?: number): StructArrayView<F>;
|
|
331
|
+
/** Allocates a growable `StructArrayView<F>` for `count` rows (pass `0` for an empty growable array). */
|
|
332
|
+
alloc(count: number, Ctor?: typeof ArrayBuffer): StructArrayView<F>;
|
|
333
|
+
from(sourceOrRows: readonly (Partial<StructInput<F>> | readonly unknown[])[] | Iterable<Partial<StructInput<F>> | readonly unknown[]> | BufferSourceInput | StructArrayView<F> | number): StructArrayView<F>;
|
|
334
|
+
shared(rowsOrCount: readonly (Partial<StructInput<F>> | readonly unknown[])[] | number): StructArrayView<F>;
|
|
335
|
+
/** Allocates or packs a `StructArrayView<F>` directly inside `WebAssembly.Memory` (via `WasmArena` or exported `capn_alloc`/`alloc`) and returns `{ view, ptr, len, byteLength }`. */
|
|
336
|
+
inWasm(wasmMemoryOrExports: WasmTarget, rowsOrCount: readonly (Partial<StructInput<F>> | readonly unknown[])[] | Iterable<Partial<StructInput<F>> | readonly unknown[]> | BufferSourceInput | StructArrayView<F> | number): WasmSlice<F>;
|
|
337
|
+
/** Packs an array of plain JavaScript objects or positional tuples into an 8-byte-aligned `Uint8Array`. */
|
|
338
|
+
pack(rows: readonly (Partial<StructInput<F>> | readonly unknown[])[]): Uint8Array;
|
|
339
|
+
concatBytes(chunks: readonly (StructArrayView<F> | Uint8Array)[]): Uint8Array;
|
|
340
|
+
}
|
|
341
|
+
/** Concatenates multiple `StructArrayView<F>` or `Uint8Array` chunks into a single packed `Uint8Array` via bulk `memcpy` when fixed-size. */
|
|
342
|
+
export declare function concatBytes<F extends FieldRecord>(def: StructDef<F>, chunks: readonly (StructArrayView<F> | Uint8Array)[]): Uint8Array;
|
|
343
|
+
/** Packs an array of plain JavaScript objects into an 8-byte-aligned `Uint8Array`. */
|
|
344
|
+
export declare function pack<F extends FieldRecord>(def: StructDef<F>, rows: readonly (Partial<StructInput<F>> | readonly unknown[])[]): Uint8Array;
|
|
345
|
+
/** Compiles a declarative `#[repr(C)]` struct schema with zero-copy `StructView` and `StructArrayView` accessors. */
|
|
346
|
+
export declare function defineStruct<F extends FieldRecord>(fields: F | ((self: SelfRef) => F)): StructDef<F>;
|
|
347
|
+
/** Compiles a named `#[repr(C)]` struct schema (used by `toRustReprC()` codegen). */
|
|
348
|
+
export declare function defineStruct<F extends FieldRecord>(name: string, fields: F | ((self: SelfRef) => F)): StructDef<F>;
|
|
349
|
+
/** Alias for `defineStruct`. */
|
|
350
|
+
export declare const struct: typeof defineStruct;
|
|
351
|
+
declare const _dtf: {
|
|
352
|
+
header(x: any): {}[] | null;
|
|
353
|
+
hasBody: (x: any) => x is MemView<any>;
|
|
354
|
+
body: (x: any) => {}[];
|
|
355
|
+
};
|
|
356
|
+
/** Registers a lazy Chrome/Edge/Firefox DevTools custom formatter (`globalThis.devtoolsFormatters`) for `StructView` and `StructArrayView`. */
|
|
357
|
+
export declare function installDevtoolsFormatter(): typeof _dtf;
|
|
358
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|