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
)
}