in modules/core/src/main/scala/tfr/TFRecord.scala [74:94]
def reader[F[_]](
checkCrc32: Boolean
)(using
sync: Sync[F]
): Kleisli[F, InputStream, Either[Error, Array[Byte]]] =
Kleisli(input => sync.delay(reader_(checkCrc32).apply(input)))
def typedReader[T, F[_]](
checkCrc32: Boolean
)(using
parsable: Parsable[T],
sync: Sync[F]
): Kleisli[F, InputStream, Either[Error, T]] =
TFRecord.reader[F](checkCrc32).andThen {
case Left(value) =>
sync.delay(Left(value): Either[Error, T])
case Right(value) =>
parsable.parser
.andThen(ex => sync.delay(Right(ex): Either[Error, T]))
.run(value)
}