rds-data-codecs-0.0.0.1: src/Data/RdsData/Internal/Aeson.hs
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE FlexibleInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.RdsData.Internal.Aeson where
import Data.Aeson
import Data.Text (Text)
import qualified Amazonka.RDSData as AWS
import qualified Data.Aeson as J
import qualified Data.ByteString.Lazy as LBS
import qualified Data.Text.Encoding as T
infixr 8 .=!
infixr 8 .=?
-- | A key-value pair difference list for encoding a JSON object.
(.=!) :: (KeyValue e kv, ToJSON v) => Key -> v -> [kv] -> [kv]
(.=!) n v = (n .= v:)
-- | A key-value pair difference list for encoding a JSON object where Nothing encodes absence of the key-value pair.
(.=?) :: (KeyValue e kv, ToJSON v) => Key -> Maybe v -> [kv] -> [kv]
(.=?) n mv = case mv of
Just v -> (n .= v:)
Nothing -> id
toJsonText :: ToJSON a => a -> Text
toJsonText field = T.decodeUtf8 (LBS.toStrict (J.encode field))
instance ToJSON AWS.ColumnMetadata where
instance ToJSON AWS.UpdateResult where
-- Customized options for toJSON
myOptions :: Options
myOptions = defaultOptions { omitNothingFields = True }
instance ToJSON AWS.ExecuteStatementResponse where
toJSON = genericToJSON myOptions
instance FromJSON AWS.ExecuteStatementResponse where
instance ToJSON AWS.BatchExecuteStatementResponse where
toJSON = genericToJSON myOptions
instance FromJSON AWS.BatchExecuteStatementResponse where