Options
All
  • Public
  • Public/Protected
  • All
Menu

Class BeetStruct<Class, Args>

Configures a class or any JavaScript object type for de/serialization aka read/write. All fields of that class have to be of fixed size. If a field requires a FixableBeet use the FixableBeetStruct instead.

Type Parameters

  • Class

    the type to produce when deserializing

  • Args = Partial<Class>

    contains all fields, is typically a subset of Class and is used to construct an instance of it

Hierarchy

Implements

Index

Constructors

  • new BeetStruct<Class, Args>(fields: FixedBeetField<Args>[], construct: ((args: Args) => Class), description?: string): BeetStruct<Class, Args>
  • Creates an instance of the BeetStruct.

    Type Parameters

    • Class

    • Args = Partial<Class>

    Parameters

    • fields: FixedBeetField<Args>[]

      de/serializers for each field of the {@link Class}

    • construct: ((args: Args) => Class)

      the function that creates an instance of {@link Class} from the args

        • (args: Args): Class
        • Parameters

          • args: Args

          Returns Class

    • description: string = BeetStruct.description

      identifies this struct for diagnostics/debugging purposes

    Returns BeetStruct<Class, Args>

Properties

byteSize: number
description: string = BeetStruct.description
fields: FixedBeetField<Args>[]
TYPE: string = 'BeetStruct'
description: string = 'BeetStruct'

Accessors

  • get type(): string

Methods

  • deserialize(buffer: Buffer, offset?: number): [Class, number]
  • Deserializes an instance of the Class from the provided buffer starting to read at the provided offset.

    Parameters

    • buffer: Buffer
    • offset: number = 0

    Returns [Class, number]

    [instance of Class, offset into buffer after deserialization completed]

  • serialize(instance: Args, byteSize?: number): [Buffer, number]
  • Serializes the provided instance into a new {@link Buffer}

    Parameters

    • instance: Args

      of the struct to serialize

    • byteSize: number = ...

      allows to override the size fo the created Buffer and defaults to the size of the struct to serialize

    Returns [Buffer, number]

Generated using TypeDoc