http 投稿本文のハッシュを計算し、受信時に同時に解析したいので、次のような関数が必要です。
unionSinks :: Monad m => Consumer a m r1 -> Consumer a m r2 -> Consumer a m (r1, r2)
unionSinks = ...
sinkBody :: Monad m => FromJSON v => Consumer ByteString m (Digest SHA1, v)
sinkBody = sinkHash `unionSinks` sinkParser json
画像のアップロードを開発したとき、私passthroughSink
は同様の方法で使用しました。しかし、この場合、画像をファイルに保存するコンジットの結果は必要ありません。
一般に、MVar のようなものを使用して fork を実装する方法は知っていますが、これが最適なソリューションであるかどうかはわかりません。