def streamReader[F[_], A]()

in modules/core/src/main/scala/tfr/TFRecord.scala [96:107]


  def streamReader[F[_], A](
      reader: Kleisli[F, InputStream, Either[Error, A]]
  ): Kleisli[Stream[F, *], InputStream, Either[Error, A]] =
    Kleisli { input =>
      Stream
        .repeatEval(reader.apply(input))
        .repeatPull(_.uncons1.flatMap {
          case None                               => Pull.pure(None)
          case Some((Left(Error.EmptyHeader), _)) => Pull.pure(None)
          case Some((elem, stream)) => Pull.output1(elem).as(Some(stream))
        })
    }