conduit

    21熱度

    2回答

    我已經使用zipSinks :: Monad m => Sink i m r -> Sink i m r' -> Sink i m (r, r')這個,但它被認爲不推薦。

    3熱度

    1回答

    有沒有辦法將runResourceT範圍限制爲單個Sink的生命週期? 我試圖構建一個Sink,其中包含可能無限數量的Sinks。這對線程正常工作,但我試圖做到沒有線程。這似乎應該是可能的。由於runResourceT的範圍限制,我遇到了一個障礙:我得到的粒度太粗(但功能性),或者太細粒度(完全破碎)的資源管理。 {-# LANGUAGE FlexibleContexts #-} import

    1熱度

    1回答

    我寫了一個simple Wai-to-uwsgi proxy,但這樣做,我不得不使用unwrapResumable。這給出了一個未包裝的Pipe以及需要最終調用的「發佈」函數。發佈函數的類型是ResourceT IO(),我想我想用我當前的資源註冊它,但要做到這一點,我需要的版本只是IO()。我應該如何使用釋放功能?

    2熱度

    2回答

    我有一個功能f :: ByteString -> String,需要一個Sink ByteString (ResourceT IO)。 我如何得到這個? 不幸的是,該文檔是不是非常有幫助?

    4熱度

    1回答

    我決定嘗試並獲得對管道的處理,並且我認爲我做得很好,但是當我嘗試使用導管4製作這個簡單源代碼時,我得到一個無限循環,不明白爲什麼。這是簡化的,原始版本將創建一個臨時文件名並通過yield返回。這只是返回一個()。 import Control.Monad.IO.Class import Data.Conduit import Data.Conduit.List as CL tempfil

    2熱度

    1回答

    當HTTP客戶端斷開連接(或其他現實世界發生)時無法弄清楚如何清理。我試圖把我的Source換成addCleanup,但它沒有被調用。 這裏是我的infinte來源串流字節串的小例子: {-# LANGUAGE OverloadedStrings #-} module Main where import Network.Wai import Network.HTTP.Types imp

    12熱度

    4回答

    我想在Haskell中編寫一個簡單的cat程序。我想以多個文件名作爲參數,並將每個文件依次寫入STDOUT,但我的程序只打印一個文件並退出。 什麼我需要做的,使我的代碼打印的所有文件,不只是第一個傳入? import Control.Monad as Monad import System.Exit import System.IO as IO import System.Environme

    5熱度

    2回答

    我希望看到的來源具有不確定性的交織處理,具有類型簽名像 interleave :: WhateverIOMonadClassItWouldWant m => [(k, Source m a)] -> Source m (k, a) 用例是,我已經有一個維護對很多節點開放連接P2P應用網絡,它主要是坐在等待來自其中的任何消息。當消息到達時,它不關心它來自哪裏,但需要儘快處理消息。理論上這種應用(

    0熱度

    1回答

    我在寫一個服務器,我需要沿着某個請求消息轉發。該消息基本上是POST(或GET)消息,可能包含幾兆字節的文件。此消息被轉發到實際存儲(或檢索)該文件的另一臺服務器。 我正在使用Yesod框架。所以,使用getWaiRequest,我可以得到WAI請求。但是要發起一個新消息傳遞,我需要使用Network.HTTP.Conduit來實現它的懶惰。所以我需要在該模塊中創建一個Request m。但我不知

    2熱度

    1回答

    首先我會給你的代碼,然後錯誤,然後一些類型的信息。問題是這些:我怎樣才能弄清楚發生了什麼?我該如何解決這個問題? readTask = do req' <- parseUrl "https://10.64.251.32/rest/api/latest/issue/BNAP-291" manager <- newManager manSettings let req''