module Hasql.Pipeline
  ( Pipeline.Pipeline,
    statement,
  )
where

import Hasql.Engine.Contexts.Pipeline qualified as Pipeline
import Hasql.Engine.Statement qualified as Statement
import Hasql.Platform.Prelude

-- |
-- Execute a statement by providing parameters to it.
statement :: params -> Statement.Statement params result -> Pipeline.Pipeline result
statement :: forall params result.
params -> Statement params result -> Pipeline result
statement params
params (Statement.Statement Text
sql Params params
encoder Result result
decoder Bool
preparable) =
  ByteString
-> Params params
-> Result result
-> Bool
-> params
-> Pipeline result
forall params result.
ByteString
-> Params params
-> Result result
-> Bool
-> params
-> Pipeline result
Pipeline.statement (Text -> ByteString
encodeUtf8 Text
sql) Params params
encoder Result result
decoder Bool
preparable params
params