我想计算http post body的哈希值并在接收时同时解析它,所以我需要一个这样的函数:
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,但我不确定这是否是最佳解决方案。