module Hasql.Conduit ( conduitQuery, ) where -- transformers import Control.Monad.Trans.Class -- conduit import Data.Conduit import Data.Conduit.List -- hasql import Hasql.Statement -- hasql-transaction-io import Hasql.CursorTransactionIO -- hasql-streams-core import Hasql.Streams -- | Run a `Statement`, but return a `Conduit` instead of a list conduitQuery :: Statement params [a] -> params -> ConduitT () a (CursorTransactionIO s) () conduitQuery stmt params = cursorStreamQuery stmt params foldConduitStream foldConduitStream :: CursorStreamFold s a (ConduitT () a (CursorTransactionIO s) ()) foldConduitStream step init = lift init >>= unfoldM step