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