module Network.Greskell.WebSocket.Request.Aeson
( genericToJSON
, genericToEncoding
, genericParseJSON
, opt
, toObject
) where
import Data.Aeson (Object, ToJSON (..), Value (Object), genericParseJSON,
genericToEncoding, genericToJSON)
import Data.Aeson.Types (Options, defaultOptions, omitNothingFields)
opt :: Options
opt :: Options
opt = Options
defaultOptions { omitNothingFields :: Bool
omitNothingFields = Bool
True }
toObject :: (ToJSON a) => a -> Object
toObject :: forall a. ToJSON a => a -> Object
toObject = Value -> Object
expectObject forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. ToJSON a => a -> Value
toJSON
where
expectObject :: Value -> Object
expectObject (Object Object
o) = Object
o
expectObject Value
_ = forall a. HasCallStack => [Char] -> a
error [Char]
"Expect Object, but got something else"