readRecord() {
    this.count = this.readInt53()
    if (this.count > 1) {
      const value = this.readRawValue()
      if (
        (this.state === "repetition" || this.state === "literal") &&
        this.lastValue === value
      ) {
        throw new RangeError(
          "Successive repetitions with the same value are not allowed",
        )
      }
      this.state = "repetition"
      this.lastValue = value
    } else if (this.count === 1) {
      throw new RangeError(
        "Repetition count of 1 is not allowed, use a literal instead",
      )
    } else if (this.count < 0) {
      this.count = -this.count
      if (this.state === "literal")
        throw new RangeError("Successive literals are not allowed")
      this.state = "literal"
    } else {
      // this.count == 0
      if (this.state === "nulls")
        throw new RangeError("Successive null runs are not allowed")
      this.count = this.readUint53()
      if (this.count === 0)
        throw new RangeError("Zero-length null runs are not allowed")
      this.lastValue = null
      this.state = "nulls"
    }
  }
Private method, do not call from outside the class.
Reads a repetition count from the buffer and sets up the state appropriately.