skeldjs
    Preparing search index...

    Class HazelWriter

    Hierarchy (View Summary)

    Index

    Properties

    _buffer: Buffer
    _cursor: number

    Accessors

    • get buffer(): Buffer<ArrayBufferLike>

      The buffer that the writer or reader is targeting.

      Returns Buffer<ArrayBufferLike>

      const writer = HazelWriter.alloc(6);

      console.log(writer; // => <HazelBuffer [00] 00 00 00 00 00>
    • get cursor(): number

      The current position of the writer or reader.

      Returns number

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

      console.log(writer.cursor); // => 2
    • get left(): number

      The number of bytes left in the writer or reader.

      Returns number

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

      console.log(writer.left); // => 4
    • get size(): number

      The size of the buffer that the writer or reader is targeting.

      Returns number

      const writer = HazelWriter.alloc(6);

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

    Methods

    • Write non-length-prefixed bytes.

      Parameters

      • bytes: string | number[] | HazelBuffer | Buffer<ArrayBufferLike>

        The bytes to write to the buffer.

      Returns this

      The writer.

      const writer = HazelWriter.alloc(5);
      writer.bytes("Hello");
    • Write a single utf8 char.

      Parameters

      • val: string

        The value to write.

      Returns void

      The writer.

      const writer = HazelWriter.alloc(4);

      writer.char("A");
      writer.char("6");
    • Clone the message writer to a new writer with a separate buffer.

      Returns HazelWriter

      The new message writer.

      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 [ ]>
    • Check whether two hazel buffers contain the same information.

      Parameters

      Returns boolean

      Whether or not the hazel writers are the same.

      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
    • Expand the writer by the number of bytes required to write a value. Won't reallocate if there are enough bytes remaining.

      Parameters

      • required: number

        The number of bytes required to write a value.

      Returns HazelWriter

      The writer.

      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
    • Write an IEEE 754 floating point number.

      Parameters

      • val: number

        The value to write.

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(8);

      writer.float(54.32);
      writer.float(21.69420);
    • Write a signed 16-bit integer value.

      Parameters

      • val: number

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

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(4);

      writer.int16(-3452);
      writer.int16(1933);
    • Write a signed 32-bit integer value.

      Parameters

      • val: number

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

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(8);

      writer.int32(-432423);
      writer.int32(1212112);
    • Write a signed 64-bit integer value.

      Parameters

      • val: bigint

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

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(8);

      writer.int64(-432423);
    • Write a signed 8-bit integer value.

      Parameters

      • val: number

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

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(4);

      writer.int8(-120);
      writer.int8(68);
    • Write an object list from the buffer.

      Type Parameters

      • T

      Parameters

      • length: boolean

        The length of the list.

      • arr: T[]
      • Optionalfn: ListWriter<T>

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

      Returns HazelWriter

      The writer.

      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];
    • Write a list of serializable objects to the writer.

      Type Parameters

      • K extends Serializable<any[]>

      Parameters

      • length: boolean
      • serializable: K[]

        The objects to write.

      • ...args: GetSerializeArgs<K>

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(0);

      writer.write(players.map(player => player.control));
    • Write a signed variable-sized integer.

      Parameters

      • val: number

        The value to write.

      Returns void

      The writer.

      const writer = HazelWriter.alloc(0);

      writer.packed(-420);
      writer.packed(153);
    • Reallocate the the number of bytes in the writer.

      Parameters

      • size: number

        The size to reallocate to.

      Returns HazelWriter

      The writer.

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

      console.log(writer.size); // => 8
    • Write a packed int length-prefixed string.

      Parameters

      • val: string

        The string to write.

      Returns void

      The writer.

      const writer = HazelWriter.alloc(9);

      writer.string("poopy");
      writer.string("poop");
    • Write an unsigned 16-bit integer value.

      Parameters

      • val: number

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

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(4);

      writer.uint16(5342);
      writer.uint16(256);
    • Write an unsigned 32-bit integer value.

      Parameters

      • val: number

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

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(8);

      writer.uint32(6764774);
      writer.uint32(12314352);
    • Write an unsigned 64-bit integer value.

      Parameters

      • val: bigint

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

      • be: boolean = false

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(8);

      writer.uint64(6764774);
    • Write an unsigned variable-size integer.

      Parameters

      • val: number

        The value to write.

      Returns void

      The writer.

      const writer = HazelWriter.alloc(0);

      writer.packed(54325);
      writer.packed(11293);
    • Write a serializable object to the writer.

      Type Parameters

      • K extends Serializable<any[]>

      Parameters

      • serializable: K

        The object to write.

      • ...args: GetSerializeArgs<K>

      Returns HazelWriter

      The writer.

      const writer = HazelWriter.alloc(0);

      writer.write(player.control);
    • Allocate a message writer with a buffer of the specified number of bytes.

      Parameters

      • bytes: number

        The number of bytes to allocate.

      Returns HazelWriter

      The message writer writing to the allocated bytes.

      const writer = HazelWriter.alloc(6);

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