private def read()

in modules/core/src/main/scala/tfr/TFRecord.scala [116:131]


  private def read(
      input: InputStream,
      length: Int
  ): Either[Error, Array[Byte]] = {
    @tailrec
    def read(off: Int, data: Array[Byte]): Array[Byte] = {
      val r = input.read(data, off, data.length - off)
      if (r > 0) then read(off + r, data)
      else if off == 0 then Array.emptyByteArray
      else data
    }

    Try(read(0, Array.ofDim[Byte](length))).toEither.left.map(_ =>
      Error.ReadError
    )
  }