@tgsnake/skema
    Preparing search index...

    Class Vector

    Serializer and deserializer for generic, strongly-typed vectors (arrays) of MTProto objects.

    In MTProto, vectors can be either "boxed" (serialized with the explicit Vector.ID class tag prefix) or "bare" (serialized directly as an array of items without the leading class ID). This class supports both boxed serialization/deserialization and bare item parsers.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _slots: string[]

    The internal slot list storing serialization field property names.

    className: string

    The canonical string name of this class representation.

    classType: string

    The underlying classification type (e.g. request, constructor, function).

    cls: any = ...

    A dynamic reference to the current subclass constructor. Enables late static binding for instance methods to access static helper operations.

    constructorId: number

    The unique 32-bit integer identifier (CRC32 checksum) of this TL constructor.

    subclassOfId: number

    The unique 32-bit integer identifier of the parent/abstract type this TL subclass represents.

    ID: number = 0x1cb5c415

    The unique class ID identifier representing Vector (0x1cb5c415).

    Methods

    • Deserializes a binary stream into this specific TLObject instance.

      Parameters

      • data: BytesIO

        The BytesIO buffer stream containing the serialized TLObject.

      • ...args: any[]

        Additional arguments passed down to the read parser.

      Returns Promise<any>

      A promise resolving to the parsed instance.

    • Serializes the TLObject instance to a clean JSON-compatible representation.

      Returns { [key: string]: any }

      A plain object containing class attributes and values.

      Correctly stringifies extremely large fields (e.g. bigints) that are normally not serializable in standard JSON.stringify calls.

    • Formats the TLObject into a structured string.

      Returns string

      A string starting with the constructor name followed by a pretty JSON payload.

    • Serializes the current class instance into a raw binary buffer.

      Parameters

      • ...args: any[]

        Arguments passed down to the writer.

      Returns Buffer

      A Buffer containing the serialized representation of this object.

    • Reads, unpacks, and deserializes a strongly-typed boxed vector from a binary stream.

      Parameters

      • data: BytesIO

        The BytesIO stream containing the serialized vector.

      • Optionaltl: any

        An optional custom type layer descriptor supplying a dedicated elements read method.

      Returns Promise<any[]>

      A promise resolving to an array of parsed elements.

      This method first extracts the element count. If a specialized element parser (tl) is provided, it uses it. Otherwise, it calculates the average element byte size dynamically using the remaining buffer capacity and delegates bare item parsing to readBare.

    • Helper deserializer reading a single "bare" item from a stream based on a calculated element byte size.

      Parameters

      • data: BytesIO

        The BytesIO stream to read from.

      • size: number

        The precalculated byte size of a single element.

      Returns Promise<any>

      A promise resolving to the parsed element.

    • Serializes an array of values into an MTProto-boxed vector Buffer.

      Parameters

      • value: any[]

        The array of elements to serialize.

      • Optionaltl: any

        An optional custom type layer descriptor supplying a dedicated elements write method.

      Returns Buffer

      A Buffer containing the boxed vector bytes.