rds-data 0.0.0.11 → 0.0.0.12
raw patch · 2 files changed
+25/−1 lines, 2 files
Files
- rds-data.cabal +1/−1
- src/Data/RdsData/Encode/Params.hs +24/−0
rds-data.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.6 name: rds-data-version: 0.0.0.11+version: 0.0.0.12 synopsis: Codecs for use with AWS rds-data description: Codecs for use with AWS rds-data. category: Data
src/Data/RdsData/Encode/Params.hs view
@@ -2,12 +2,15 @@ module Data.RdsData.Encode.Params ( EncodeParams(..)+ , EncodedParams(..)+ , encode , rdsValue , column , maybe+ , named , array , bool@@ -62,10 +65,26 @@ import qualified Data.Text.Lazy as LT import qualified Prelude as P +newtype EncodedParams = EncodedParams+ { unEncodedParams :: [Param] -> [Param]+ }++instance Semigroup EncodedParams where+ EncodedParams f <> EncodedParams g =+ EncodedParams (f . g)++instance Monoid EncodedParams where+ mempty =+ EncodedParams id+ newtype EncodeParams a = EncodeParams { encodeParams :: a -> [Param] -> [Param] } +encode :: EncodeParams a -> a -> EncodedParams+encode (EncodeParams f) a =+ EncodedParams (f a)+ instance Contravariant EncodeParams where contramap f (EncodeParams g) = EncodeParams (g . f)@@ -98,6 +117,11 @@ column :: EncodeParam a -> EncodeParams a column (EncodeParam f) = EncodeParams \a -> (f a:)++named :: Text -> EncodeParam a -> EncodeParams a+named n ep =+ EncodeParams \a ->+ (EP.encodeParam (EP.named n ep) a:) --------------------------------------------------------------------------------