如何将`Stream`转换为命令式读操作

时间:2016-07-21 21:45:24

标签: scala fs2

我有Stream[F,A],我需要将其转换为以下更多"原始流媒体界面"为了被不fs2知道的代码库的一部分所使用:

trait PrimitiveStreamRepr[F[_]] {
  def read:  F[Option[A]]
  def close: F[Unit]
}

我该怎么做呢? 也许答案是这样的转换是不可能的,一旦你将java流媒体接口包装成fs2.Stream,它就可以更长时间地被转换成#34;回到" java风格"流媒体界面,必须将Stream一直冒泡到最高级别,可以将其传送到某些Sinkrun

1 个答案:

答案 0 :(得分:0)

基本上你提出的建议是踩踏流。

流中的步进仍然实现,如果整个PrimitiveStreamRepr将用Stream包装,你建议的是可能的,这不太可能是你想要的。

至于与遗留代码的接口,请参阅async._ package以获取各种队列和信号。

抱歉,我无法为您提供更多帮助,我将需要您尝试解决的旧代码中的特定情况。

基本上fs2._与遗留代码很好地集成,无论是同步还是异步都无关紧要。但是,我们不公开最终会以非资源安全代码结束的内部功能。