git.iko.soy/typeable/postgresql-simple
on master help sign in
add field' function

Like field, but takes parser as argument.

commit0ffbbce59b17f986eaa9d51e2266457e6d0aacc2 authorLeonid Onokhov <sopvop@gmail.com> dateMon 23 Jul 2012, 11:09 (14 years ago) parentb18da51
1 file changed+7−3
src/Database/PostgreSQL/Simple/FromRow.hs+7−3
src/Database/PostgreSQL/Simple/FromRow.hs+7−3
@@ -20,6 +20,7 @@ module Database.PostgreSQL.Simple.FromRow
2020 ( FromRow(..)
2121 , RowParser
2222 , field
23+ , field'
2324 , numFieldsRemaining
2425 ) where
2526
@@ -64,8 +65,8 @@ import Data.Vector ((!))
6465class FromRow a where
6566 fromRow :: RowParser a
6667
67−field :: FromField a => RowParser a
68−field = RP $ do
68+field' :: (Field -> Maybe ByteString -> Ok a) -> RowParser a
69+field' fieldP = RP $ do
6970 let unCol (PQ.Col x) = fromIntegral x :: Int
7071 Row{..} <- ask
7172 column <- lift get
@@ -87,7 +88,10 @@ field = RP $ do
8788 let typename = typenames ! unCol column
8889 result = rowresult
8990 field = Field{..}
90− lift (lift (fromField field (getvalue result row column)))
91+ lift (lift (fieldP field (getvalue result row column)))
92+
93+field :: FromField a => RowParser a
94+field = field' fromField
9195
9296ellipsis :: ByteString -> ByteString
9397ellipsis bs