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;
};
```
近期下载者:
相关文件:
收藏者: