Class HazelWriter

Hierarchy

Methods

  • Allocate a message writer with a buffer of the specified number of bytes.

    Returns

    The message writer writing to the allocated bytes.

    Example

    const writer = HazelWriter.alloc(6);

    console.log(writer.size); // => 6

    Parameters

    • bytes: number

      The number of bytes to allocate.

    Returns HazelWriter

  • Returns Generator<number, void, unknown>

  • Begin writing a new length & tag message.

    Returns

    The writer.

    const writer = HazelWriter.alloc(4);
    writer.begin(5);
    writer.uint8(0x45);
    writer.end();

    Parameters

    • tag: number

      The tag of the message.

    Returns HazelWriter

  • Write a true or false value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(4);

    writer.bool(true);
    writer.bool(false);

    Parameters

    • val: boolean

      The value to write.

    Returns HazelWriter

  • Write a single unsigned byte.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(1);

    writer.byte(69);

    Parameters

    • val: number

      The value to write. (Between 0 and 255 inclusive.)

    Returns HazelWriter

  • Write non-length-prefixed bytes.

    Returns

    The writer.

    const writer = HazelWriter.alloc(5);
    writer.bytes("Hello");

    Parameters

    • bytes: string | number[] | Buffer | HazelBuffer

      The bytes to write to the buffer.

    Returns HazelWriter

  • Write a single utf8 char.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(4);

    writer.char("A");
    writer.char("6");

    Parameters

    • val: string

      The value to write.

    Returns void

  • Clone the message writer to a new writer with a separate buffer.

    Returns

    The new message writer.

    Example

    const writer = HazelWriter.alloc(2);
    writer.uint8(32);
    writer.uint8(12);

    const cloned = writer.clone();
    cloned.uint8(90);

    console.log(writer); // => <HazelBuffer 20 0c [ ]>
    console.log(cloned); // => <HazelBuffer 20 0c 5a [ ]>

    Returns HazelWriter

  • Check whether two hazel buffers contain the same information.

    Returns

    Whether or not the hazel writers are the same.

    Example

    const writer = HazelWriter.alloc(2);
    writer.uint8(21);
    writer.uint8(69);

    const writer2 = HazelWriter.alloc(2);
    writer.uint8(21);
    writer.uint8(69);

    console.log(writer.compare(writer2)); // => true

    writer2.uint8(90);

    console.log(writer.compare(writer2)); // => false

    Parameters

    Returns boolean

  • End writing an opened message.

    Returns

    The writer.

    const writer = HazelWriter.alloc(4);
    writer.begin(5);
    writer.uint8(0x45);
    writer.end();

    Returns HazelWriter

  • Expand the writer by the number of bytes required to write a value. Won't reallocate if there are enough bytes remaining.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(6);
    writer.expand(2); // The cursor is at 0, since there is 2 bytes remaining, the size remains at 6.

    console.log(writer.size); // => 6

    writer.expand(8); // There is not 8 bytes remaining so the writer buffer is reallocated to 8.
    console.log(writer.size); // => 8

    Parameters

    • required: number

      The number of bytes required to write a value.

    Returns HazelWriter

  • Write an IEEE 754 floating point number.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(8);

    writer.float(54.32);
    writer.float(21.69420);

    Parameters

    • val: number

      The value to write.

    • Optional be: boolean

    Returns HazelWriter

  • Move the cursor to a position.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(12);
    writer.goto(5);

    console.log(writer.cursor); // => 5

    Parameters

    • pos: number

      The position to move to.

    Returns HazelWriter

  • Write a signed 16-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(4);

    writer.int16(-3452);
    writer.int16(1933);

    Parameters

    • val: number

      The value to write. (Between -32767 and 32767 inclusive.)

    • Optional be: boolean

    Returns HazelWriter

  • Write a signed 32-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(8);

    writer.int32(-432423);
    writer.int32(1212112);

    Parameters

    • val: number

      The value to write. (Between -2147483647 and 2147483647 inclusive.)

    • Optional be: boolean

    Returns HazelWriter

  • Write a signed 64-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(8);

    writer.int64(-432423);

    Parameters

    • val: bigint

      The value to write. (Between -2147483647 and 2147483647 inclusive.)

    • Optional be: boolean

    Returns HazelWriter

  • Write a signed 8-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(4);

    writer.int8(-120);
    writer.int8(68);

    Parameters

    • val: number

      The value to write. (Between -127 and 127 inclusive.)

    Returns HazelWriter

  • Skip a speciied number of bytes.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(12);
    writer.skip(3);
    writer.skip(2);
    writer.skip(5);

    console.log(writer.cursor); // => 10

    Parameters

    • bytes: number

    Returns HazelWriter

  • Write an object list from the buffer.

    Returns

    The writer.

    Example

    const nums = [5, 6, 7, 8];
    const reader = HazelReader.alloc(0);

    const items = reader.list(nums, (item, writer) => writer.uint8(item));

    console.log(items); // => [5, 6, 7, 8];

    Type Parameters

    • T

    Parameters

    • length: boolean

      The length of the list.

    • arr: T[]
    • Optional fn: ListWriter<T>

      The function accepting a single reader to use for reading data.

    Returns HazelWriter

  • Write a list of serializable objects to the writer.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(0);

    writer.write(players.map(player => player.control));

    Type Parameters

    • K extends Serializable<any[]>

    Parameters

    • length: boolean
    • serializable: K[]

      The objects to write.

    • Rest ...args: GetSerializeArgs<K>

    Returns HazelWriter

  • Write a signed variable-sized integer.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(0);

    writer.packed(-420);
    writer.packed(153);

    Parameters

    • val: number

      The value to write.

    Returns void

  • Reallocate the the number of bytes in the writer.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(4);
    writer.realloc(8);

    console.log(writer.size); // => 8

    Parameters

    • size: number

      The size to reallocate to.

    Returns HazelWriter

  • Write a single signed byte.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(1);

    writer.byte(-32);

    Parameters

    • val: number

      The value to write. (Between -127 and 127 inclusive.)

    Returns HazelWriter

  • Write a packed int length-prefixed string.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(9);

    writer.string("poopy");
    writer.string("poop");

    Parameters

    • val: string

      The string to write.

    Returns void

  • Parameters

    • Optional encoding: BufferEncoding

    Returns string

  • Write an unsigned 16-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(4);

    writer.uint16(5342);
    writer.uint16(256);

    Parameters

    • val: number

      The value to write. (Between 0 and 65535 inclusive.)

    • Optional be: boolean

    Returns HazelWriter

  • Write an unsigned 32-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(8);

    writer.uint32(6764774);
    writer.uint32(12314352);

    Parameters

    • val: number

      The value to write. (Between 0 and 4294967295 inclusive.)

    • Optional be: boolean

    Returns HazelWriter

  • Write an unsigned 64-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(8);

    writer.uint64(6764774);

    Parameters

    • val: bigint

      The value to write. (Between 0 and 18446744073709552000 inclusive.)

    • Optional be: boolean

    Returns HazelWriter

  • Write an unsigned 8-bit integer value.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(1);

    writer.uint8(54);

    Parameters

    • val: number

      The value to write. (Between 0 and 255 inclusive.)

    Returns HazelWriter

  • Write an unsigned variable-size integer.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(0);

    writer.packed(54325);
    writer.packed(11293);

    Parameters

    • val: number

      The value to write.

    Returns void

  • Write a vector position into 2 16 bit integers.

    Returns

    The writer.

    Parameters

    • position: Vector2

      The position to write.

    Returns void

  • Write a serializable object to the writer.

    Returns

    The writer.

    Example

    const writer = HazelWriter.alloc(0);

    writer.write(player.control);

    Type Parameters

    • K extends Serializable<any[]>

    Parameters

    • serializable: K

      The object to write.

    • Rest ...args: GetSerializeArgs<K>

    Returns HazelWriter

Accessors

  • get buffer(): Buffer
  • The buffer that the writer or reader is targeting.

    Example

    const writer = HazelWriter.alloc(6);

    console.log(writer; // => <HazelBuffer [00] 00 00 00 00 00>

    Returns Buffer

  • get cursor(): number
  • The current position of the writer or reader.

    Example

    const writer = HazelWriter.alloc(2);
    writer.uint16(4);

    console.log(writer.cursor); // => 2

    Returns number

  • get left(): number
  • The number of bytes left in the writer or reader.

    Example

    const writer = HazelWriter.alloc(6);
    writer.uint16(4);

    console.log(writer.left); // => 4

    Returns number

  • get size(): number
  • The size of the buffer that the writer or reader is targeting.

    Example

    const writer = HazelWriter.alloc(6);

    console.log(writer.size); // => 6

    Returns number

Generated using TypeDoc