module Hasql.CursorQuery.Private.Decoders where

import qualified Control.Foldl as B
import Hasql.CursorQuery.Private.Prelude
import qualified Hasql.Decoders as A

fold :: B.Fold a b -> A.Row a -> A.Result b
fold :: forall a b. Fold a b -> Row a -> Result b
fold (B.Fold x -> a -> x
progress x
enter x -> b
exit) Row a
rowDecoder =
  (x -> b) -> Result x -> Result b
forall a b. (a -> b) -> Result a -> Result b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap x -> b
exit ((x -> a -> x) -> x -> Row a -> Result x
forall a b. (a -> b -> a) -> a -> Row b -> Result a
A.foldlRows x -> a -> x
progress x
enter Row a
rowDecoder)