{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
module Aws.Lambda.Runtime.StandaloneLambda.Types
( StandaloneLambdaResponseBody (..),
ToStandaloneLambdaResponseBody (..),
)
where
import Aws.Lambda.Utilities (toJSONText)
import Data.Aeson (FromJSON, ToJSON)
import Data.Text (Text)
import qualified Data.Text as Text
newtype StandaloneLambdaResponseBody = StandaloneLambdaResponseBody {StandaloneLambdaResponseBody -> Text
unStandaloneLambdaResponseBody :: Text}
deriving newtype ([StandaloneLambdaResponseBody] -> Encoding
[StandaloneLambdaResponseBody] -> Value
StandaloneLambdaResponseBody -> Encoding
StandaloneLambdaResponseBody -> Value
(StandaloneLambdaResponseBody -> Value)
-> (StandaloneLambdaResponseBody -> Encoding)
-> ([StandaloneLambdaResponseBody] -> Value)
-> ([StandaloneLambdaResponseBody] -> Encoding)
-> ToJSON StandaloneLambdaResponseBody
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [StandaloneLambdaResponseBody] -> Encoding
$ctoEncodingList :: [StandaloneLambdaResponseBody] -> Encoding
toJSONList :: [StandaloneLambdaResponseBody] -> Value
$ctoJSONList :: [StandaloneLambdaResponseBody] -> Value
toEncoding :: StandaloneLambdaResponseBody -> Encoding
$ctoEncoding :: StandaloneLambdaResponseBody -> Encoding
toJSON :: StandaloneLambdaResponseBody -> Value
$ctoJSON :: StandaloneLambdaResponseBody -> Value
ToJSON, Value -> Parser [StandaloneLambdaResponseBody]
Value -> Parser StandaloneLambdaResponseBody
(Value -> Parser StandaloneLambdaResponseBody)
-> (Value -> Parser [StandaloneLambdaResponseBody])
-> FromJSON StandaloneLambdaResponseBody
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [StandaloneLambdaResponseBody]
$cparseJSONList :: Value -> Parser [StandaloneLambdaResponseBody]
parseJSON :: Value -> Parser StandaloneLambdaResponseBody
$cparseJSON :: Value -> Parser StandaloneLambdaResponseBody
FromJSON)
class ToStandaloneLambdaResponseBody a where
toStandaloneLambdaResponse :: a -> StandaloneLambdaResponseBody
instance {-# OVERLAPPING #-} ToStandaloneLambdaResponseBody String where
toStandaloneLambdaResponse :: String -> StandaloneLambdaResponseBody
toStandaloneLambdaResponse = Text -> StandaloneLambdaResponseBody
StandaloneLambdaResponseBody (Text -> StandaloneLambdaResponseBody)
-> (String -> Text) -> String -> StandaloneLambdaResponseBody
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
Text.pack
instance {-# OVERLAPPING #-} ToStandaloneLambdaResponseBody Text where
toStandaloneLambdaResponse :: Text -> StandaloneLambdaResponseBody
toStandaloneLambdaResponse = Text -> StandaloneLambdaResponseBody
StandaloneLambdaResponseBody
instance ToJSON a => ToStandaloneLambdaResponseBody a where
toStandaloneLambdaResponse :: a -> StandaloneLambdaResponseBody
toStandaloneLambdaResponse = Text -> StandaloneLambdaResponseBody
StandaloneLambdaResponseBody (Text -> StandaloneLambdaResponseBody)
-> (a -> Text) -> a -> StandaloneLambdaResponseBody
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> Text
forall a. ToJSON a => a -> Text
toJSONText