hasql-implicits 0.1 → 0.1.0.1
raw patch · 3 files changed
+23/−20 lines, 3 files
Files
- hasql-implicits.cabal +2/−2
- library/Hasql/Implicits/Encoders.hs +16/−18
- library/Hasql/Implicits/Prelude.hs +5/−0
hasql-implicits.cabal view
@@ -1,6 +1,6 @@ name: hasql-implicits-version: 0.1-synopsis: Toolkit for constructing Hasql statements dynamically+version: 0.1.0.1+synopsis: Implicit definitions for Hasql, such as default codecs for standard types homepage: https://github.com/nikita-volkov/hasql-implicits bug-reports: https://github.com/nikita-volkov/hasql-implicits/issues author: Nikita Volkov <nikita.y.volkov@mail.ru>
library/Hasql/Implicits/Encoders.hs view
@@ -11,61 +11,60 @@ {-| Default parameter encoder with nullability specified. -} defaultParam :: NullableOrNot Value a -#define RIGHT_QUOTED(a) a' #define INSTANCES(VALUE, ENCODER) \ instance DefaultParamEncoder VALUE where { \ defaultParam = nonNullable ENCODER; \ }; \ instance DefaultParamEncoder [VALUE] where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder [Maybe VALUE] where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder [[VALUE]] where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder [[Maybe VALUE]] where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder (Vector VALUE) where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder (Vector (Maybe VALUE)) where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder (Vector (Vector VALUE)) where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder (Vector (Vector (Maybe VALUE))) where { \- defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe VALUE) where { \ defaultParam = nullable ENCODER; \ }; \ instance DefaultParamEncoder (Maybe [VALUE]) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe [Maybe VALUE]) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe [[VALUE]]) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe [[Maybe VALUE]]) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe (Vector VALUE)) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe (Vector (Maybe VALUE))) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . element . nullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe (Vector (Vector VALUE))) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \ }; \ instance DefaultParamEncoder (Maybe (Vector (Vector (Maybe VALUE)))) where { \- defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \+ defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \ } INSTANCES(Char, char)@@ -88,4 +87,3 @@ INSTANCES((NetAddr IP), inet) #undef INSTANCES-#undef RIGHT_QUOTED
library/Hasql/Implicits/Prelude.hs view
@@ -1,6 +1,7 @@ module Hasql.Implicits.Prelude ( module Exports,+ foldlStrict, ) where @@ -104,3 +105,7 @@ -- network-ip ------------------------- import Network.IP.Addr as Exports (NetAddr, IP)++{-# INLINE foldlStrict #-}+foldlStrict :: Foldable foldable => (b -> a -> b) -> b -> foldable a -> b+foldlStrict = foldl'