2016-07-21 7 views
0

私はStream[F,A]を持っています。fs2を認識していないコードベースの部分で消費されるためには、次の "プリミティブストリーミングインタフェース"`ストリーム`を命令的な読み取り操作に変換する方法

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

どうすればいいですか? 多分答えはそのような変換は不可能で、一度あなたはfs2.StreamにJavaストリーミングインターフェイスをラップすると、より長く「Javaスタイル」ストリーミングインターフェイスに「変換」することができます。Streamをトップレベルでは、Sinkrunにパイプすることができます。

答えて

0

本質的には、あなたがストリームを踏んでいることを示唆しているものがあります。

ストリームのステッピングはまだ実装されていますが、PrimitiveStreamRepr全体がStreamでラップされていれば、あなたが望むことはできません。

従来のコードとのインタフェースに関しては、利用可能なさまざまなキューとシグナルについてasync._パッケージを参照してください。

申し訳ありませんもっとお手伝いできませんが、解決しようとしているレガシーコードでは、特定のケースが必要です。

本質的にfs2._は、レガシーコードと非常によく似ていますが、同期または非同期であれば問題ありません。しかし、我々は最終的に非リソース安全なコードに終わるであろう内部機能を公開しません。

関連する問題