binary-struct-ts

所属分类:数据结构
开发工具:TypeScript
文件大小:0KB
下载次数:0
上传日期:2022-02-25 22:49:30
上 传 者sh-1993
说明:  一个小型的、基于Typescript装饰器的性能模块,用于直接处理原始二进制数据结构。
(A small, performant Typescript decorator-based module for working directly with raw binary data structures.)

文件列表:
LICENSE (1050, 2022-02-25)
TODO.md (653, 2022-02-25)
benchmark/ (0, 2022-02-25)
benchmark/benchmark.ts (6037, 2022-02-25)
jest.config.json (57, 2022-02-25)
package-lock.json (264677, 2022-02-25)
package.json (890, 2022-02-25)
src/ (0, 2022-02-25)
src/BinaryStruct.ts (8835, 2022-02-25)
src/PackingStrategy.ts (1335, 2022-02-25)
src/exports.ts (66, 2022-02-25)
test/ (0, 2022-02-25)
test/copy.test.ts (962, 2022-02-25)
test/endianness.test.ts (1386, 2022-02-25)
test/fields.test.ts (988, 2022-02-25)
test/packing.test.ts (930, 2022-02-25)
test/sizeOf.test.ts (872, 2022-02-25)
test/testStructs.ts (3736, 2022-02-25)
test/toJSON.test.ts (1131, 2022-02-25)
tsconfig.json (10988, 2022-02-25)

# BinaryStruct.ts A small, performant Typescript decorator-based module for working directly with raw binary data structures. ## Examples ### Basic Usage ```ts import { BinaryStruct, BinaryType, sizeOf, binaryStruct, binaryField } from "binary-struct-ts"; @binaryStruct() class ExampleStruct extends BinaryStruct { @binaryField(BinaryType.Int32) id: number; @binaryField(BinaryType.Float32) value: number; @binaryField(BinaryType.Uint8) isDeleted: number; @binaryField(BinaryType.BinaryStruct, AnotherStruct) details: AnotherStruct; }; const data = new ExampleStruct(new ArrayBuffer(sizeOf(ExampleStruct))); data.id = 1234; data.value = 3.14; data.details = anotherStructInstance; ``` ### Read Structured Data ```ts const data = new ExampleStruct(arrayBuffer, offsetBytes); id = data.id; value = data.value; detailsValue = data.details.value; ``` ### Copy Data ```ts const src = new ExampleStruct(arrayBuffer, srcOffsetBytes); const dst = new ExampleStruct(arrayBuffer, dstOffsetBytes); dst.copyFrom(src); ``` ### Additional Options ```ts @binaryStruct({ endianness: Endianness.BigEndian, packingStrategy: new AlignedPackingStrategy(4) }) class ExampleStruct extends BinaryStruct { @binaryField(BinaryType.Int32) id: number; @binaryField(BinaryType.Float32) value: number; @binaryField(BinaryType.Uint8) isDeleted: number; @binaryField(BinaryType.BinaryStruct, AnotherStruct) details: AnotherStruct; }; ```

近期下载者

相关文件


收藏者