Как создать ZStream из строки из ZStream из байта

Мне нужно прочитать файл с http. Я использую sttp с ZioBackend следующим образом:

      val sttpBackend: SttpBackend[Task, ZioStreams] = ???

val request =
  basicRequest
    .post(uri"...")
    .response(asStreamUnsafe(ZioStreams))
    .readTimeout(Duration.Inf)

val response: ZIO[
  Any, 
  Throwable, 
  Response[Either[String, Stream[Throwable, Byte]]]
] = sttpBackend.send(request)

Как перейти отStream[Throwable, Byte]кStream[Throwable, String]в котором каждая строка будет строкой из тела ответа?

1 ответ

Путь к использованиюZTransducerв zio1.x:

        def decodeLines: ZTransducer[Any, Nothing, Byte, String] =
    ZTransducer.utf8Decode >>> ZTransducer.splitLines

  stream.transduce(decodeLines)

Или в zio2.x черезZPipeline:

      stream.via(ZPipeline.utf8Decode >>> ZPipeline.splitLines)
Другие вопросы по тегам