我有Stream[F,A]
,我需要将其转换为以下更多"原始流媒体界面"为了被不fs2
知道的代码库的一部分所使用:
trait PrimitiveStreamRepr[F[_]] {
def read: F[Option[A]]
def close: F[Unit]
}
我该怎么做呢?
也许答案是这样的转换是不可能的,一旦你将java流媒体接口包装成fs2.Stream
,它就可以更长时间地被转换成#34;回到" java风格"流媒体界面,必须将Stream
一直冒泡到最高级别,可以将其传送到某些Sink
和run
。
答案 0 :(得分:0)
基本上你提出的建议是踩踏流。
流中的步进仍然实现,如果整个PrimitiveStreamRepr将用Stream包装,你建议的是可能的,这不太可能是你想要的。
至于与遗留代码的接口,请参阅async._ package以获取各种队列和信号。
抱歉,我无法为您提供更多帮助,我将需要您尝试解决的旧代码中的特定情况。
基本上fs2._与遗留代码很好地集成,无论是同步还是异步都无关紧要。但是,我们不公开最终会以非资源安全代码结束的内部功能。