{-# LANGUAGE PatternSynonyms #-}
module Prolude.Aeson
(
module Data.Aeson
, JsonOptions
, JsonValue
, pattern JsonArray
, pattern JsonBoolean
, pattern JsonNull
, pattern JsonNumber
, pattern JsonObject
, pattern JsonString
)
where
import Data.Aeson
( FromJSON
, ToJSON
, fromJSON
, genericParseJSON
, genericToJSON
, parseJSON
, toJSON
, (.!=)
, (.:)
, (.:?)
, (.=)
)
import qualified Data.Aeson as Aeson
import qualified Data.Bool as Bool
import qualified Data.Scientific as Scientific
import qualified Data.Text as Text
import qualified Data.Vector as Vector
type JsonOptions = Aeson.Options
type JsonValue = Aeson.Value
pattern JsonNull :: JsonValue
pattern $bJsonNull :: JsonValue
$mJsonNull :: forall {r}. JsonValue -> ((# #) -> r) -> ((# #) -> r) -> r
JsonNull = Aeson.Null
pattern JsonBoolean :: Bool.Bool -> JsonValue
pattern $bJsonBoolean :: Bool -> JsonValue
$mJsonBoolean :: forall {r}. JsonValue -> (Bool -> r) -> ((# #) -> r) -> r
JsonBoolean x = Aeson.Bool x
pattern JsonNumber :: Scientific.Scientific -> JsonValue
pattern $bJsonNumber :: Scientific -> JsonValue
$mJsonNumber :: forall {r}. JsonValue -> (Scientific -> r) -> ((# #) -> r) -> r
JsonNumber x = Aeson.Number x
pattern JsonString :: Text.Text -> JsonValue
pattern $bJsonString :: Text -> JsonValue
$mJsonString :: forall {r}. JsonValue -> (Text -> r) -> ((# #) -> r) -> r
JsonString x = Aeson.String x
pattern JsonArray :: Vector.Vector JsonValue -> JsonValue
pattern $bJsonArray :: Vector JsonValue -> JsonValue
$mJsonArray :: forall {r}.
JsonValue -> (Vector JsonValue -> r) -> ((# #) -> r) -> r
JsonArray x = Aeson.Array x
pattern JsonObject :: Aeson.Object -> JsonValue
pattern $bJsonObject :: Object -> JsonValue
$mJsonObject :: forall {r}. JsonValue -> (Object -> r) -> ((# #) -> r) -> r
JsonObject x = Aeson.Object x
{-# COMPLETE
JsonNull,
JsonBoolean,
JsonNumber,
JsonString,
JsonArray,
JsonObject #-}