@yume-chan/struct 0.0.23 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -2
- package/LICENSE +1 -1
- package/README.md +85 -714
- package/esm/bipedal.d.ts +5 -0
- package/esm/bipedal.d.ts.map +1 -0
- package/esm/bipedal.js +31 -0
- package/esm/bipedal.js.map +1 -0
- package/esm/buffer.d.ts +21 -0
- package/esm/buffer.d.ts.map +1 -0
- package/esm/buffer.js +173 -0
- package/esm/buffer.js.map +1 -0
- package/esm/field.d.ts +21 -0
- package/esm/field.d.ts.map +1 -0
- package/esm/field.js +2 -0
- package/esm/field.js.map +1 -0
- package/esm/index.d.ts +6 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +6 -4
- package/esm/index.js.map +1 -1
- package/esm/number.d.ts +13 -0
- package/esm/number.d.ts.map +1 -0
- package/esm/number.js +59 -0
- package/esm/number.js.map +1 -0
- package/esm/{basic/stream.d.ts → readable.d.ts} +3 -3
- package/esm/readable.d.ts.map +1 -0
- package/esm/{basic/stream.js → readable.js} +1 -2
- package/esm/readable.js.map +1 -0
- package/esm/string.d.ts +16 -0
- package/esm/string.d.ts.map +1 -0
- package/esm/string.js +14 -0
- package/esm/string.js.map +1 -0
- package/esm/struct.d.ts +24 -127
- package/esm/struct.d.ts.map +1 -1
- package/esm/struct.js +72 -214
- package/esm/struct.js.map +1 -1
- package/esm/utils.d.ts +10 -45
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +12 -11
- package/esm/utils.js.map +1 -1
- package/package.json +11 -14
- package/src/bipedal.ts +55 -0
- package/src/buffer.ts +260 -0
- package/src/field.ts +27 -0
- package/src/index.ts +6 -4
- package/src/number.ts +123 -0
- package/src/{basic/stream.ts → readable.ts} +3 -4
- package/src/string.ts +43 -0
- package/src/struct.ts +156 -628
- package/src/utils.ts +18 -69
- package/tsconfig.build.json +6 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/CHANGELOG.json +0 -161
- package/esm/basic/definition.d.ts +0 -44
- package/esm/basic/definition.d.ts.map +0 -1
- package/esm/basic/definition.js +0 -24
- package/esm/basic/definition.js.map +0 -1
- package/esm/basic/field-value.d.ts +0 -39
- package/esm/basic/field-value.d.ts.map +0 -1
- package/esm/basic/field-value.js +0 -46
- package/esm/basic/field-value.js.map +0 -1
- package/esm/basic/index.d.ts +0 -6
- package/esm/basic/index.d.ts.map +0 -1
- package/esm/basic/index.js +0 -6
- package/esm/basic/index.js.map +0 -1
- package/esm/basic/options.d.ts +0 -10
- package/esm/basic/options.d.ts.map +0 -1
- package/esm/basic/options.js +0 -4
- package/esm/basic/options.js.map +0 -1
- package/esm/basic/stream.d.ts.map +0 -1
- package/esm/basic/stream.js.map +0 -1
- package/esm/basic/struct-value.d.ts +0 -26
- package/esm/basic/struct-value.d.ts.map +0 -1
- package/esm/basic/struct-value.js +0 -57
- package/esm/basic/struct-value.js.map +0 -1
- package/esm/sync-promise.d.ts +0 -13
- package/esm/sync-promise.d.ts.map +0 -1
- package/esm/sync-promise.js +0 -71
- package/esm/sync-promise.js.map +0 -1
- package/esm/types/bigint.d.ts +0 -26
- package/esm/types/bigint.d.ts.map +0 -1
- package/esm/types/bigint.js +0 -47
- package/esm/types/bigint.js.map +0 -1
- package/esm/types/buffer/base.d.ts +0 -65
- package/esm/types/buffer/base.d.ts.map +0 -1
- package/esm/types/buffer/base.js +0 -101
- package/esm/types/buffer/base.js.map +0 -1
- package/esm/types/buffer/fixed-length.d.ts +0 -9
- package/esm/types/buffer/fixed-length.d.ts.map +0 -1
- package/esm/types/buffer/fixed-length.js +0 -7
- package/esm/types/buffer/fixed-length.js.map +0 -1
- package/esm/types/buffer/index.d.ts +0 -4
- package/esm/types/buffer/index.d.ts.map +0 -1
- package/esm/types/buffer/index.js +0 -4
- package/esm/types/buffer/index.js.map +0 -1
- package/esm/types/buffer/variable-length.d.ts +0 -45
- package/esm/types/buffer/variable-length.d.ts.map +0 -1
- package/esm/types/buffer/variable-length.js +0 -76
- package/esm/types/buffer/variable-length.js.map +0 -1
- package/esm/types/index.d.ts +0 -4
- package/esm/types/index.d.ts.map +0 -1
- package/esm/types/index.js +0 -4
- package/esm/types/index.js.map +0 -1
- package/esm/types/number.d.ts +0 -28
- package/esm/types/number.d.ts.map +0 -1
- package/esm/types/number.js +0 -111
- package/esm/types/number.js.map +0 -1
- package/src/basic/definition.ts +0 -68
- package/src/basic/field-value.ts +0 -75
- package/src/basic/index.ts +0 -5
- package/src/basic/options.ts +0 -19
- package/src/basic/struct-value.ts +0 -67
- package/src/sync-promise.ts +0 -134
- package/src/types/bigint.ts +0 -121
- package/src/types/buffer/base.ts +0 -197
- package/src/types/buffer/fixed-length.ts +0 -17
- package/src/types/buffer/index.ts +0 -3
- package/src/types/buffer/variable-length.ts +0 -174
- package/src/types/index.ts +0 -3
- package/src/types/number.ts +0 -173
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { StructFieldValue } from "./field-value.js";
|
|
2
|
-
export declare const STRUCT_VALUE_SYMBOL: unique symbol;
|
|
3
|
-
/**
|
|
4
|
-
* A struct value is a map between keys in a struct and their field values.
|
|
5
|
-
*/
|
|
6
|
-
export declare class StructValue {
|
|
7
|
-
/**
|
|
8
|
-
* Gets the result struct value object
|
|
9
|
-
*/
|
|
10
|
-
readonly value: Record<PropertyKey, unknown>;
|
|
11
|
-
constructor(prototype: object);
|
|
12
|
-
/**
|
|
13
|
-
* Sets a `StructFieldValue` for `key`
|
|
14
|
-
*
|
|
15
|
-
* @param name The field name
|
|
16
|
-
* @param fieldValue The associated `StructFieldValue`
|
|
17
|
-
*/
|
|
18
|
-
set(name: PropertyKey, fieldValue: StructFieldValue): void;
|
|
19
|
-
/**
|
|
20
|
-
* Gets the `StructFieldValue` for `key`
|
|
21
|
-
*
|
|
22
|
-
* @param name The field name
|
|
23
|
-
*/
|
|
24
|
-
get(name: PropertyKey): StructFieldValue;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=struct-value.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,eAAyB,CAAC;AAE1D;;GAEG;AACH,qBAAa,WAAW;IAMpB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAEjC,SAAS,EAAE,MAAM;IAa7B;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAqB1D;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB;CAG3C"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export const STRUCT_VALUE_SYMBOL = Symbol("struct-value");
|
|
2
|
-
/**
|
|
3
|
-
* A struct value is a map between keys in a struct and their field values.
|
|
4
|
-
*/
|
|
5
|
-
export class StructValue {
|
|
6
|
-
/** @internal */ fieldValues = {};
|
|
7
|
-
/**
|
|
8
|
-
* Gets the result struct value object
|
|
9
|
-
*/
|
|
10
|
-
value;
|
|
11
|
-
constructor(prototype) {
|
|
12
|
-
// PERF: `Object.create(extra)` is 50% faster
|
|
13
|
-
// than `Object.defineProperties(this.value, extra)`
|
|
14
|
-
this.value = Object.create(prototype);
|
|
15
|
-
// PERF: `Object.defineProperty` is slow
|
|
16
|
-
// but we need it to be non-enumerable
|
|
17
|
-
Object.defineProperty(this.value, STRUCT_VALUE_SYMBOL, {
|
|
18
|
-
enumerable: false,
|
|
19
|
-
value: this,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Sets a `StructFieldValue` for `key`
|
|
24
|
-
*
|
|
25
|
-
* @param name The field name
|
|
26
|
-
* @param fieldValue The associated `StructFieldValue`
|
|
27
|
-
*/
|
|
28
|
-
set(name, fieldValue) {
|
|
29
|
-
this.fieldValues[name] = fieldValue;
|
|
30
|
-
// PERF: `Object.defineProperty` is slow
|
|
31
|
-
// use normal property when possible
|
|
32
|
-
if (fieldValue.hasCustomAccessors) {
|
|
33
|
-
Object.defineProperty(this.value, name, {
|
|
34
|
-
configurable: true,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
get() {
|
|
37
|
-
return fieldValue.get();
|
|
38
|
-
},
|
|
39
|
-
set(v) {
|
|
40
|
-
fieldValue.set(v);
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.value[name] = fieldValue.get();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Gets the `StructFieldValue` for `key`
|
|
50
|
-
*
|
|
51
|
-
* @param name The field name
|
|
52
|
-
*/
|
|
53
|
-
get(name) {
|
|
54
|
-
return this.fieldValues[name];
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=struct-value.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB,CAAU,WAAW,GAGjC,EAAE,CAAC;IAEP;;OAEG;IACM,KAAK,CAA+B;IAE7C,YAAY,SAAiB;QACzB,6CAA6C;QAC7C,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAiC,CAAC;QAEtE,wCAAwC;QACxC,sCAAsC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE;YACnD,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAiB,EAAE,UAA4B;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAEpC,wCAAwC;QACxC,oCAAoC;QACpC,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAChC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBACpC,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,GAAG;oBACC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,IAAiB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC;IACnC,CAAC;CACJ"}
|
package/esm/sync-promise.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface SyncPromise<T> {
|
|
2
|
-
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): SyncPromise<TResult1 | TResult2>;
|
|
3
|
-
valueOrPromise(): T | PromiseLike<T>;
|
|
4
|
-
}
|
|
5
|
-
interface SyncPromiseStatic {
|
|
6
|
-
reject<T = never>(reason?: any): SyncPromise<T>;
|
|
7
|
-
resolve(): SyncPromise<void>;
|
|
8
|
-
resolve<T>(value: T | PromiseLike<T>): SyncPromise<T>;
|
|
9
|
-
try<T>(executor: () => T | PromiseLike<T>): SyncPromise<T>;
|
|
10
|
-
}
|
|
11
|
-
export declare const SyncPromise: SyncPromiseStatic;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=sync-promise.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-promise.d.ts","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EACN,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,IAAI,GACJ,SAAS,EACf,UAAU,CAAC,EACL,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACnD,IAAI,GACJ,SAAS,GAChB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAEpC,cAAc,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CACxC;AAED,UAAU,iBAAiB;IACvB,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEtD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,WAAW,EAAE,iBA8BzB,CAAC"}
|
package/esm/sync-promise.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
export const SyncPromise = {
|
|
2
|
-
reject(reason) {
|
|
3
|
-
return new RejectedSyncPromise(reason);
|
|
4
|
-
},
|
|
5
|
-
resolve(value) {
|
|
6
|
-
if (typeof value === "object" &&
|
|
7
|
-
value !== null &&
|
|
8
|
-
typeof value.then === "function") {
|
|
9
|
-
if (value instanceof PendingSyncPromise ||
|
|
10
|
-
value instanceof ResolvedSyncPromise ||
|
|
11
|
-
value instanceof RejectedSyncPromise) {
|
|
12
|
-
return value;
|
|
13
|
-
}
|
|
14
|
-
return new PendingSyncPromise(value);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return new ResolvedSyncPromise(value);
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
try(executor) {
|
|
21
|
-
try {
|
|
22
|
-
return SyncPromise.resolve(executor());
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
return SyncPromise.reject(e);
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
class PendingSyncPromise {
|
|
30
|
-
#promise;
|
|
31
|
-
constructor(promise) {
|
|
32
|
-
this.#promise = promise;
|
|
33
|
-
}
|
|
34
|
-
then(onfulfilled, onrejected) {
|
|
35
|
-
return new PendingSyncPromise(this.#promise.then(onfulfilled, onrejected));
|
|
36
|
-
}
|
|
37
|
-
valueOrPromise() {
|
|
38
|
-
return this.#promise;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
class ResolvedSyncPromise {
|
|
42
|
-
#value;
|
|
43
|
-
constructor(value) {
|
|
44
|
-
this.#value = value;
|
|
45
|
-
}
|
|
46
|
-
then(onfulfilled) {
|
|
47
|
-
if (!onfulfilled) {
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
return SyncPromise.try(() => onfulfilled(this.#value));
|
|
51
|
-
}
|
|
52
|
-
valueOrPromise() {
|
|
53
|
-
return this.#value;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
class RejectedSyncPromise {
|
|
57
|
-
#reason;
|
|
58
|
-
constructor(reason) {
|
|
59
|
-
this.#reason = reason;
|
|
60
|
-
}
|
|
61
|
-
then(onfulfilled, onrejected) {
|
|
62
|
-
if (!onrejected) {
|
|
63
|
-
return this;
|
|
64
|
-
}
|
|
65
|
-
return SyncPromise.try(() => onrejected(this.#reason));
|
|
66
|
-
}
|
|
67
|
-
valueOrPromise() {
|
|
68
|
-
throw this.#reason;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=sync-promise.js.map
|
package/esm/sync-promise.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,MAAM,CAAY,MAAY;QAC1B,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAI,KAA0B;QACjC,IACI,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,UAAU,EACtD,CAAC;YACC,IACI,KAAK,YAAY,kBAAkB;gBACnC,KAAK,YAAY,mBAAmB;gBACpC,KAAK,YAAY,mBAAmB,EACtC,CAAC;gBACC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,OAAO,IAAI,kBAAkB,CAAC,KAAuB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,mBAAmB,CAAC,KAAU,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,GAAG,CAAI,QAAkC;QACrC,IAAI,CAAC;YACD,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,kBAAkB;IACpB,QAAQ,CAAiB;IAEzB,YAAY,OAAuB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,CACA,WAGe,EACf,UAGe;QAEf,OAAO,IAAI,kBAAkB,CACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAC9C,CAAC;IACN,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACrB,MAAM,CAAI;IAEV,YAAY,KAAQ;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,CACA,WAGe;QAEf,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,IAAW,CAAC;QACvB,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACrB,OAAO,CAAM;IAEb,YAAY,MAAW;QACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,CACA,WAGe,EACf,UAGe;QAEf,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,IAAW,CAAC;QACvB,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc;QACV,MAAM,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;CACJ"}
|
package/esm/types/bigint.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { AsyncExactReadable, ExactReadable, StructOptions, StructValue } from "../basic/index.js";
|
|
2
|
-
import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
|
|
3
|
-
type DataViewBigInt64Getter = (dataView: DataView, byteOffset: number, littleEndian: boolean | undefined) => bigint;
|
|
4
|
-
type DataViewBigInt64Setter = (dataView: DataView, byteOffset: number, value: bigint, littleEndian: boolean | undefined) => void;
|
|
5
|
-
export declare class BigIntFieldType {
|
|
6
|
-
readonly TTypeScriptType: bigint;
|
|
7
|
-
readonly size: number;
|
|
8
|
-
readonly getter: DataViewBigInt64Getter;
|
|
9
|
-
readonly setter: DataViewBigInt64Setter;
|
|
10
|
-
constructor(size: number, getter: DataViewBigInt64Getter, setter: DataViewBigInt64Setter);
|
|
11
|
-
static readonly Int64: BigIntFieldType;
|
|
12
|
-
static readonly Uint64: BigIntFieldType;
|
|
13
|
-
}
|
|
14
|
-
export declare class BigIntFieldDefinition<TType extends BigIntFieldType = BigIntFieldType, TTypeScriptType = TType["TTypeScriptType"]> extends StructFieldDefinition<void, TTypeScriptType> {
|
|
15
|
-
readonly type: TType;
|
|
16
|
-
constructor(type: TType, typescriptType?: TTypeScriptType);
|
|
17
|
-
getSize(): number;
|
|
18
|
-
create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): BigIntFieldValue<this>;
|
|
19
|
-
deserialize(options: Readonly<StructOptions>, stream: ExactReadable, struct: StructValue): BigIntFieldValue<this>;
|
|
20
|
-
deserialize(options: Readonly<StructOptions>, stream: AsyncExactReadable, struct: StructValue): Promise<BigIntFieldValue<this>>;
|
|
21
|
-
}
|
|
22
|
-
export declare class BigIntFieldValue<TDefinition extends BigIntFieldDefinition<BigIntFieldType, any>> extends StructFieldValue<TDefinition> {
|
|
23
|
-
serialize(dataView: DataView, offset: number): void;
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
26
|
-
//# sourceMappingURL=bigint.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,MAAM,CAAC;AAEZ,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,IAAI,CAAC;AAEV,qBAAa,eAAe;IACxB,QAAQ,CAAC,eAAe,EAAG,MAAM,CAAC;IAElC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;gBAGpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB;IAOlC,MAAM,CAAC,QAAQ,CAAC,KAAK,kBAAoD;IAEzE,MAAM,CAAC,QAAQ,CAAC,MAAM,kBAAsD;CAC/E;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAC5C,SAAQ,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,eAAe;IAMzD,OAAO,IAAI,MAAM;IAIjB,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,GACvB,gBAAgB,CAAC,IAAI,CAAC;IAIhB,WAAW,CAChB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,WAAW,GACpB,gBAAgB,CAAC,IAAI,CAAC;IAChB,WAAW,CAChB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAoBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CACjE,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAQtD"}
|
package/esm/types/bigint.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { getBigInt64, getBigUint64, setBigInt64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill/esm/fallback.js";
|
|
2
|
-
import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
|
|
3
|
-
import { SyncPromise } from "../sync-promise.js";
|
|
4
|
-
export class BigIntFieldType {
|
|
5
|
-
TTypeScriptType;
|
|
6
|
-
size;
|
|
7
|
-
getter;
|
|
8
|
-
setter;
|
|
9
|
-
constructor(size, getter, setter) {
|
|
10
|
-
this.size = size;
|
|
11
|
-
this.getter = getter;
|
|
12
|
-
this.setter = setter;
|
|
13
|
-
}
|
|
14
|
-
static Int64 = new BigIntFieldType(8, getBigInt64, setBigInt64);
|
|
15
|
-
static Uint64 = new BigIntFieldType(8, getBigUint64, setBigUint64);
|
|
16
|
-
}
|
|
17
|
-
export class BigIntFieldDefinition extends StructFieldDefinition {
|
|
18
|
-
type;
|
|
19
|
-
constructor(type, typescriptType) {
|
|
20
|
-
void typescriptType;
|
|
21
|
-
super();
|
|
22
|
-
this.type = type;
|
|
23
|
-
}
|
|
24
|
-
getSize() {
|
|
25
|
-
return this.type.size;
|
|
26
|
-
}
|
|
27
|
-
create(options, struct, value) {
|
|
28
|
-
return new BigIntFieldValue(this, options, struct, value);
|
|
29
|
-
}
|
|
30
|
-
deserialize(options, stream, struct) {
|
|
31
|
-
return SyncPromise.try(() => {
|
|
32
|
-
return stream.readExactly(this.getSize());
|
|
33
|
-
})
|
|
34
|
-
.then((array) => {
|
|
35
|
-
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
|
36
|
-
const value = this.type.getter(view, 0, options.littleEndian);
|
|
37
|
-
return this.create(options, struct, value);
|
|
38
|
-
})
|
|
39
|
-
.valueOrPromise();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export class BigIntFieldValue extends StructFieldValue {
|
|
43
|
-
serialize(dataView, offset) {
|
|
44
|
-
this.definition.type.setter(dataView, offset, this.value, this.options.littleEndian);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=bigint.js.map
|
package/esm/types/bigint.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,qDAAqD,CAAC;AAQ7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,MAAM,OAAO,eAAe;IACf,eAAe,CAAU;IAEzB,IAAI,CAAS;IAEb,MAAM,CAAyB;IAE/B,MAAM,CAAyB;IAExC,YACI,IAAY,EACZ,MAA8B,EAC9B,MAA8B;QAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAU,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,CAAU,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;;AAGhF,MAAM,OAAO,qBAGX,SAAQ,qBAA4C;IACzC,IAAI,CAAQ;IAErB,YAAY,IAAW,EAAE,cAAgC;QACrD,KAAK,cAAc,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM,CACF,OAAgC,EAChC,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAYQ,WAAW,CAChB,OAAgC,EAChC,MAA0C,EAC1C,MAAmB;QAEnB,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;YACxB,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;aACG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,IAAI,QAAQ,CACrB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACnB,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAY,CAAC,CAAC;QACtD,CAAC,CAAC;aACD,cAAc,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,OAAO,gBAEX,SAAQ,gBAA6B;IACnC,SAAS,CAAC,QAAkB,EAAE,MAAc;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CACvB,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { AsyncExactReadable, ExactReadable, StructOptions, StructValue } from "../../basic/index.js";
|
|
2
|
-
import { StructFieldDefinition, StructFieldValue } from "../../basic/index.js";
|
|
3
|
-
/**
|
|
4
|
-
* Base class for all types that
|
|
5
|
-
* can be converted from an `Uint8Array` when deserialized,
|
|
6
|
-
* and need to be converted to an `Uint8Array` when serializing
|
|
7
|
-
*
|
|
8
|
-
* @template TValue The actual TypeScript type of this type
|
|
9
|
-
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
10
|
-
* specified by user when creating field definitions.
|
|
11
|
-
*/
|
|
12
|
-
export declare abstract class BufferFieldSubType<TValue = unknown, TTypeScriptType = TValue> {
|
|
13
|
-
readonly TTypeScriptType: TTypeScriptType;
|
|
14
|
-
/**
|
|
15
|
-
* When implemented in derived classes, converts the type-specific `value` to an `Uint8Array`
|
|
16
|
-
*
|
|
17
|
-
* This function should be "pure", i.e.,
|
|
18
|
-
* same `value` should always be converted to `Uint8Array`s that have same content.
|
|
19
|
-
*/
|
|
20
|
-
abstract toBuffer(value: TValue): Uint8Array;
|
|
21
|
-
/** When implemented in derived classes, converts the `Uint8Array` to a type-specific value */
|
|
22
|
-
abstract toValue(array: Uint8Array): TValue;
|
|
23
|
-
/**
|
|
24
|
-
* When implemented in derived classes, gets the size in byte of the type-specific `value`.
|
|
25
|
-
*
|
|
26
|
-
* If the size can't be calculated without first converting the `value` back to an `Uint8Array`,
|
|
27
|
-
* implementer can returns `-1`, so the caller will get its size by first converting it to
|
|
28
|
-
* an `Uint8Array` (and cache the result).
|
|
29
|
-
*/
|
|
30
|
-
abstract getSize(value: TValue): number;
|
|
31
|
-
}
|
|
32
|
-
/** An `BufferFieldSubType` that's actually an `Uint8Array` */
|
|
33
|
-
export declare class Uint8ArrayBufferFieldSubType<TTypeScriptType = Uint8Array> extends BufferFieldSubType<Uint8Array, TTypeScriptType> {
|
|
34
|
-
static readonly Instance: Uint8ArrayBufferFieldSubType<Uint8Array>;
|
|
35
|
-
protected constructor();
|
|
36
|
-
toBuffer(value: Uint8Array): Uint8Array;
|
|
37
|
-
toValue(buffer: Uint8Array): Uint8Array;
|
|
38
|
-
getSize(value: Uint8Array): number;
|
|
39
|
-
}
|
|
40
|
-
/** An `BufferFieldSubType` that converts between `Uint8Array` and `string` */
|
|
41
|
-
export declare class StringBufferFieldSubType<TTypeScriptType = string> extends BufferFieldSubType<string, TTypeScriptType> {
|
|
42
|
-
static readonly Instance: StringBufferFieldSubType<string>;
|
|
43
|
-
toBuffer(value: string): Uint8Array;
|
|
44
|
-
toValue(array: Uint8Array): string;
|
|
45
|
-
getSize(): number;
|
|
46
|
-
}
|
|
47
|
-
export declare const EMPTY_UINT8_ARRAY: Uint8Array;
|
|
48
|
-
export declare abstract class BufferLikeFieldDefinition<TType extends BufferFieldSubType<any, any> = BufferFieldSubType<unknown, unknown>, TOptions = void, TOmitInitKey extends PropertyKey = never, TTypeScriptType = TType["TTypeScriptType"]> extends StructFieldDefinition<TOptions, TTypeScriptType, TOmitInitKey> {
|
|
49
|
-
readonly type: TType;
|
|
50
|
-
constructor(type: TType, options: TOptions);
|
|
51
|
-
protected getDeserializeSize(struct: StructValue): number;
|
|
52
|
-
/**
|
|
53
|
-
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
54
|
-
*/
|
|
55
|
-
create(options: Readonly<StructOptions>, struct: StructValue, value: TType["TTypeScriptType"], array?: Uint8Array): BufferLikeFieldValue<this>;
|
|
56
|
-
deserialize(options: Readonly<StructOptions>, stream: ExactReadable, struct: StructValue): BufferLikeFieldValue<this>;
|
|
57
|
-
deserialize(options: Readonly<StructOptions>, stream: AsyncExactReadable, struct: StructValue): Promise<BufferLikeFieldValue<this>>;
|
|
58
|
-
}
|
|
59
|
-
export declare class BufferLikeFieldValue<TDefinition extends BufferLikeFieldDefinition<BufferFieldSubType<unknown, unknown>, any, any>> extends StructFieldValue<TDefinition> {
|
|
60
|
-
protected array: Uint8Array | undefined;
|
|
61
|
-
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition["TValue"], array?: Uint8Array);
|
|
62
|
-
set(value: TDefinition["TValue"]): void;
|
|
63
|
-
serialize(dataView: DataView, offset: number): void;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/base.ts"],"names":[],"mappings":"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"}
|
package/esm/types/buffer/base.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { StructFieldDefinition, StructFieldValue } from "../../basic/index.js";
|
|
2
|
-
import { SyncPromise } from "../../sync-promise.js";
|
|
3
|
-
import { decodeUtf8, encodeUtf8 } from "../../utils.js";
|
|
4
|
-
/**
|
|
5
|
-
* Base class for all types that
|
|
6
|
-
* can be converted from an `Uint8Array` when deserialized,
|
|
7
|
-
* and need to be converted to an `Uint8Array` when serializing
|
|
8
|
-
*
|
|
9
|
-
* @template TValue The actual TypeScript type of this type
|
|
10
|
-
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
11
|
-
* specified by user when creating field definitions.
|
|
12
|
-
*/
|
|
13
|
-
export class BufferFieldSubType {
|
|
14
|
-
TTypeScriptType;
|
|
15
|
-
}
|
|
16
|
-
/** An `BufferFieldSubType` that's actually an `Uint8Array` */
|
|
17
|
-
export class Uint8ArrayBufferFieldSubType extends BufferFieldSubType {
|
|
18
|
-
static Instance = new Uint8ArrayBufferFieldSubType();
|
|
19
|
-
constructor() {
|
|
20
|
-
super();
|
|
21
|
-
}
|
|
22
|
-
toBuffer(value) {
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
|
-
toValue(buffer) {
|
|
26
|
-
return buffer;
|
|
27
|
-
}
|
|
28
|
-
getSize(value) {
|
|
29
|
-
return value.byteLength;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/** An `BufferFieldSubType` that converts between `Uint8Array` and `string` */
|
|
33
|
-
export class StringBufferFieldSubType extends BufferFieldSubType {
|
|
34
|
-
static Instance = new StringBufferFieldSubType();
|
|
35
|
-
toBuffer(value) {
|
|
36
|
-
return encodeUtf8(value);
|
|
37
|
-
}
|
|
38
|
-
toValue(array) {
|
|
39
|
-
return decodeUtf8(array);
|
|
40
|
-
}
|
|
41
|
-
getSize() {
|
|
42
|
-
// Return `-1`, so `BufferLikeFieldDefinition` will
|
|
43
|
-
// convert this `value` into an `Uint8Array` (and cache the result),
|
|
44
|
-
// Then get the size from that `Uint8Array`
|
|
45
|
-
return -1;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export const EMPTY_UINT8_ARRAY = new Uint8Array(0);
|
|
49
|
-
export class BufferLikeFieldDefinition extends StructFieldDefinition {
|
|
50
|
-
type;
|
|
51
|
-
constructor(type, options) {
|
|
52
|
-
super(options);
|
|
53
|
-
this.type = type;
|
|
54
|
-
}
|
|
55
|
-
getDeserializeSize(struct) {
|
|
56
|
-
void struct;
|
|
57
|
-
return this.getSize();
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
61
|
-
*/
|
|
62
|
-
create(options, struct, value, array) {
|
|
63
|
-
return new BufferLikeFieldValue(this, options, struct, value, array);
|
|
64
|
-
}
|
|
65
|
-
deserialize(options, stream, struct) {
|
|
66
|
-
return SyncPromise.try(() => {
|
|
67
|
-
const size = this.getDeserializeSize(struct);
|
|
68
|
-
if (size === 0) {
|
|
69
|
-
return EMPTY_UINT8_ARRAY;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
return stream.readExactly(size);
|
|
73
|
-
}
|
|
74
|
-
})
|
|
75
|
-
.then((array) => {
|
|
76
|
-
const value = this.type.toValue(array);
|
|
77
|
-
return this.create(options, struct, value, array);
|
|
78
|
-
})
|
|
79
|
-
.valueOrPromise();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
export class BufferLikeFieldValue extends StructFieldValue {
|
|
83
|
-
array;
|
|
84
|
-
constructor(definition, options, struct, value, array) {
|
|
85
|
-
super(definition, options, struct, value);
|
|
86
|
-
this.array = array;
|
|
87
|
-
}
|
|
88
|
-
set(value) {
|
|
89
|
-
super.set(value);
|
|
90
|
-
// When value changes, clear the cached `array`
|
|
91
|
-
// It will be lazily calculated in `serialize()`
|
|
92
|
-
this.array = undefined;
|
|
93
|
-
}
|
|
94
|
-
serialize(dataView, offset) {
|
|
95
|
-
if (!this.array) {
|
|
96
|
-
this.array = this.definition.type.toBuffer(this.value);
|
|
97
|
-
}
|
|
98
|
-
new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength).set(this.array, offset);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/types/buffer/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { BufferFieldSubType } from "./base.js";
|
|
2
|
-
import { BufferLikeFieldDefinition } from "./base.js";
|
|
3
|
-
export interface FixedLengthBufferLikeFieldOptions {
|
|
4
|
-
length: number;
|
|
5
|
-
}
|
|
6
|
-
export declare class FixedLengthBufferLikeFieldDefinition<TType extends BufferFieldSubType = BufferFieldSubType, TOptions extends FixedLengthBufferLikeFieldOptions = FixedLengthBufferLikeFieldOptions, TTypeScriptType = TType["TTypeScriptType"]> extends BufferLikeFieldDefinition<TType, TOptions, never, TTypeScriptType> {
|
|
7
|
-
getSize(): number;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=fixed-length.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-length.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/fixed-length.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,iCAAiC;IAC9C,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oCAAoC,CAC7C,KAAK,SAAS,kBAAkB,GAAG,kBAAkB,EACrD,QAAQ,SACJ,iCAAiC,GAAG,iCAAiC,EACzE,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAC5C,SAAQ,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC;IACxE,OAAO,IAAI,MAAM;CAGpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-length.js","sourceRoot":"","sources":["../../../src/types/buffer/fixed-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAMtD,MAAM,OAAO,oCAKX,SAAQ,yBAAkE;IACxE,OAAO;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/buffer/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { StructFieldDefinition, StructOptions, StructValue } from "../../basic/index.js";
|
|
2
|
-
import { StructFieldValue } from "../../basic/index.js";
|
|
3
|
-
import type { KeysOfType } from "../../utils.js";
|
|
4
|
-
import type { BufferFieldSubType } from "./base.js";
|
|
5
|
-
import { BufferLikeFieldDefinition, BufferLikeFieldValue } from "./base.js";
|
|
6
|
-
export type LengthField<TFields> = KeysOfType<TFields, number | string>;
|
|
7
|
-
export interface VariableLengthBufferLikeFieldOptions<TFields = object, TLengthField extends LengthField<TFields> = any> {
|
|
8
|
-
/**
|
|
9
|
-
* The name of the field that contains the length of the buffer.
|
|
10
|
-
*
|
|
11
|
-
* This field must be a `number` or `string` (can't be `bigint`) field.
|
|
12
|
-
*/
|
|
13
|
-
lengthField: TLengthField;
|
|
14
|
-
/**
|
|
15
|
-
* If the `lengthField` refers to a string field,
|
|
16
|
-
* what radix to use when converting the string to a number.
|
|
17
|
-
*
|
|
18
|
-
* @default 10
|
|
19
|
-
*/
|
|
20
|
-
lengthFieldRadix?: number;
|
|
21
|
-
}
|
|
22
|
-
export declare class VariableLengthBufferLikeFieldDefinition<TType extends BufferFieldSubType = BufferFieldSubType, TOptions extends VariableLengthBufferLikeFieldOptions = VariableLengthBufferLikeFieldOptions, TTypeScriptType = TType["TTypeScriptType"]> extends BufferLikeFieldDefinition<TType, TOptions, TOptions["lengthField"], TTypeScriptType> {
|
|
23
|
-
getSize(): number;
|
|
24
|
-
protected getDeserializeSize(struct: StructValue): number;
|
|
25
|
-
create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType, array?: Uint8Array): VariableLengthBufferLikeStructFieldValue<this>;
|
|
26
|
-
}
|
|
27
|
-
export declare class VariableLengthBufferLikeStructFieldValue<TDefinition extends VariableLengthBufferLikeFieldDefinition = VariableLengthBufferLikeFieldDefinition> extends BufferLikeFieldValue<TDefinition> {
|
|
28
|
-
protected length: number | undefined;
|
|
29
|
-
protected lengthFieldValue: VariableLengthBufferLikeFieldLengthValue;
|
|
30
|
-
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition["TValue"], array?: Uint8Array);
|
|
31
|
-
getSize(): number;
|
|
32
|
-
set(value: unknown): void;
|
|
33
|
-
}
|
|
34
|
-
type VariableLengthBufferLikeFieldValueLike = StructFieldValue<StructFieldDefinition<VariableLengthBufferLikeFieldOptions, any, any>>;
|
|
35
|
-
export declare class VariableLengthBufferLikeFieldLengthValue extends StructFieldValue {
|
|
36
|
-
protected originalField: StructFieldValue;
|
|
37
|
-
protected bufferField: VariableLengthBufferLikeFieldValueLike;
|
|
38
|
-
constructor(originalField: StructFieldValue, arrayBufferField: VariableLengthBufferLikeFieldValueLike);
|
|
39
|
-
getSize(): number;
|
|
40
|
-
get(): string | number;
|
|
41
|
-
set(): void;
|
|
42
|
-
serialize(dataView: DataView, offset: number): void;
|
|
43
|
-
}
|
|
44
|
-
export {};
|
|
45
|
-
//# sourceMappingURL=variable-length.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variable-length.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/variable-length.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,qBAAqB,EACrB,aAAa,EACb,WAAW,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAE5E,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,oCAAoC,CACjD,OAAO,GAAG,MAAM,EAChB,YAAY,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG;IAE/C;;;;OAIG;IACH,WAAW,EAAE,YAAY,CAAC;IAE1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,uCAAuC,CAChD,KAAK,SAAS,kBAAkB,GAAG,kBAAkB,EACrD,QAAQ,SACJ,oCAAoC,GAAG,oCAAoC,EAC/E,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAC5C,SAAQ,yBAAyB,CAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,CAAC,aAAa,CAAC,EACvB,eAAe,CAClB;IACG,OAAO,IAAI,MAAM;cAIE,kBAAkB,CAAC,MAAM,EAAE,WAAW;IAQhD,MAAM,CACX,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,EACtB,KAAK,CAAC,EAAE,UAAU,GACnB,wCAAwC,CAAC,IAAI,CAAC;CASpD;AAED,qBAAa,wCAAwC,CACjD,WAAW,SACP,uCAAuC,GAAG,uCAAuC,CACvF,SAAQ,oBAAoB,CAAC,WAAW,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;gBAGjE,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC5B,KAAK,CAAC,EAAE,UAAU;IAmBb,OAAO;IAYP,GAAG,CAAC,KAAK,EAAE,OAAO;CAK9B;AAGD,KAAK,sCAAsC,GAAG,gBAAgB,CAC1D,qBAAqB,CAAC,oCAAoC,EAAE,GAAG,EAAE,GAAG,CAAC,CACxE,CAAC;AAEF,qBAAa,wCAAyC,SAAQ,gBAAgB;IAC1E,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAE1C,SAAS,CAAC,WAAW,EAAE,sCAAsC,CAAC;gBAG1D,aAAa,EAAE,gBAAgB,EAC/B,gBAAgB,EAAE,sCAAsC;IAYnD,OAAO;IAIP,GAAG;IAaH,GAAG;IAKZ,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;CAI/C"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { StructFieldValue } from "../../basic/index.js";
|
|
2
|
-
import { BufferLikeFieldDefinition, BufferLikeFieldValue } from "./base.js";
|
|
3
|
-
export class VariableLengthBufferLikeFieldDefinition extends BufferLikeFieldDefinition {
|
|
4
|
-
getSize() {
|
|
5
|
-
return 0;
|
|
6
|
-
}
|
|
7
|
-
getDeserializeSize(struct) {
|
|
8
|
-
let value = struct.value[this.options.lengthField];
|
|
9
|
-
if (typeof value === "string") {
|
|
10
|
-
value = Number.parseInt(value, this.options.lengthFieldRadix ?? 10);
|
|
11
|
-
}
|
|
12
|
-
return value;
|
|
13
|
-
}
|
|
14
|
-
create(options, struct, value, array) {
|
|
15
|
-
return new VariableLengthBufferLikeStructFieldValue(this, options, struct, value, array);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export class VariableLengthBufferLikeStructFieldValue extends BufferLikeFieldValue {
|
|
19
|
-
length;
|
|
20
|
-
lengthFieldValue;
|
|
21
|
-
constructor(definition, options, struct, value, array) {
|
|
22
|
-
super(definition, options, struct, value, array);
|
|
23
|
-
if (array) {
|
|
24
|
-
this.length = array.byteLength;
|
|
25
|
-
}
|
|
26
|
-
// Patch the associated length field.
|
|
27
|
-
const lengthField = this.definition.options.lengthField;
|
|
28
|
-
const originalValue = struct.get(lengthField);
|
|
29
|
-
this.lengthFieldValue = new VariableLengthBufferLikeFieldLengthValue(originalValue, this);
|
|
30
|
-
struct.set(lengthField, this.lengthFieldValue);
|
|
31
|
-
}
|
|
32
|
-
getSize() {
|
|
33
|
-
if (this.length === undefined) {
|
|
34
|
-
this.length = this.definition.type.getSize(this.value);
|
|
35
|
-
if (this.length === -1) {
|
|
36
|
-
this.array = this.definition.type.toBuffer(this.value);
|
|
37
|
-
this.length = this.array.byteLength;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return this.length;
|
|
41
|
-
}
|
|
42
|
-
set(value) {
|
|
43
|
-
super.set(value);
|
|
44
|
-
this.array = undefined;
|
|
45
|
-
this.length = undefined;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export class VariableLengthBufferLikeFieldLengthValue extends StructFieldValue {
|
|
49
|
-
originalField;
|
|
50
|
-
bufferField;
|
|
51
|
-
constructor(originalField, arrayBufferField) {
|
|
52
|
-
super(originalField.definition, originalField.options, originalField.struct, 0);
|
|
53
|
-
this.originalField = originalField;
|
|
54
|
-
this.bufferField = arrayBufferField;
|
|
55
|
-
}
|
|
56
|
-
getSize() {
|
|
57
|
-
return this.originalField.getSize();
|
|
58
|
-
}
|
|
59
|
-
get() {
|
|
60
|
-
let value = this.bufferField.getSize();
|
|
61
|
-
const originalValue = this.originalField.get();
|
|
62
|
-
if (typeof originalValue === "string") {
|
|
63
|
-
value = value.toString(this.bufferField.definition.options.lengthFieldRadix ?? 10);
|
|
64
|
-
}
|
|
65
|
-
return value;
|
|
66
|
-
}
|
|
67
|
-
set() {
|
|
68
|
-
// Ignore setting
|
|
69
|
-
// It will always be in sync with the buffer size
|
|
70
|
-
}
|
|
71
|
-
serialize(dataView, offset) {
|
|
72
|
-
this.originalField.set(this.get());
|
|
73
|
-
this.originalField.serialize(dataView, offset);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=variable-length.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variable-length.js","sourceRoot":"","sources":["../../../src/types/buffer/variable-length.ts"],"names":[],"mappings":"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"}
|