Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Schema.JSON
Contents
Synopsis
- type JsonType = HMutu JsonPrimitive Schema
- type JsonSchema = Schema JsonType
- type JsonField o a = Field JsonSchema o a
- newtype JsonSerializer a = JsonSerializer {
- runJsonSerializer :: a -> Value
- newtype JsonDeserializer a = JsonDeserializer {
- runJsonDeserializer :: Value -> Parser a
- class ToJsonSerializer s where
- class ToJsonDeserializer s where
- data JsonPrimitive (f :: * -> *) (a :: *) where
- JsonNumber :: JsonPrimitive f Scientific
- JsonText :: JsonPrimitive f Text
- JsonBool :: JsonPrimitive f Bool
- JsonArray :: f a -> JsonPrimitive f (Vector a)
- JsonMap :: f a -> JsonPrimitive f (HashMap Text a)
Documentation
type JsonSchema = Schema JsonType Source #
Simple JSON schema type
type JsonField o a = Field JsonSchema o a Source #
Simple JSON field type
newtype JsonSerializer a Source #
Constructors
JsonSerializer | |
Fields
|
Instances
Contravariant JsonSerializer Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods contramap :: (a -> b) -> JsonSerializer b -> JsonSerializer a # (>$) :: b -> JsonSerializer b -> JsonSerializer a # |
newtype JsonDeserializer a Source #
Constructors
JsonDeserializer | |
Fields
|
Instances
Functor JsonDeserializer Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods fmap :: (a -> b) -> JsonDeserializer a -> JsonDeserializer b # (<$) :: a -> JsonDeserializer b -> JsonDeserializer a # | |
Applicative JsonDeserializer Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods pure :: a -> JsonDeserializer a # (<*>) :: JsonDeserializer (a -> b) -> JsonDeserializer a -> JsonDeserializer b # liftA2 :: (a -> b -> c) -> JsonDeserializer a -> JsonDeserializer b -> JsonDeserializer c # (*>) :: JsonDeserializer a -> JsonDeserializer b -> JsonDeserializer b # (<*) :: JsonDeserializer a -> JsonDeserializer b -> JsonDeserializer a # |
class ToJsonSerializer s where Source #
Methods
Instances
ToJsonSerializer JsonType Source # | |
Defined in Data.Schema.JSON.Internal.Types Methods | |
ToJsonSerializer p => ToJsonSerializer (Schema p) Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods | |
(ToJsonSerializer p, ToJsonSerializer q) => ToJsonSerializer (Sum p q) Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods toJsonSerializer :: Sum p q ~> JsonSerializer Source # |
class ToJsonDeserializer s where Source #
Methods
Instances
ToJsonDeserializer JsonType Source # | |
Defined in Data.Schema.JSON.Internal.Types Methods | |
ToJsonDeserializer p => ToJsonDeserializer (Schema p) Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods | |
(ToJsonDeserializer p, ToJsonDeserializer q) => ToJsonDeserializer (Sum p q) Source # | |
Defined in Data.Schema.JSON.Internal.Serializer Methods toJsonDeserializer :: Sum p q ~> JsonDeserializer Source # |
data JsonPrimitive (f :: * -> *) (a :: *) where Source #
Constructors
JsonNumber :: JsonPrimitive f Scientific | |
JsonText :: JsonPrimitive f Text | |
JsonBool :: JsonPrimitive f Bool | |
JsonArray :: f a -> JsonPrimitive f (Vector a) | |
JsonMap :: f a -> JsonPrimitive f (HashMap Text a) |
Instances
ToSchemaDoc JsonType Source # | |
Defined in Data.Schema.JSON.Internal.Types Methods | |
ToSchemaLayout JsonType Source # | |
Defined in Data.Schema.JSON.Internal.Types Methods | |
ToGen JsonType Source # | |
ToJsonDeserializer JsonType Source # | |
Defined in Data.Schema.JSON.Internal.Types Methods | |
ToJsonSerializer JsonType Source # | |
Defined in Data.Schema.JSON.Internal.Types Methods |
Orphan instances
(HasSchema a, ToJsonSerializer (PrimitivesOf a)) => ToJSON a Source # | |
(HasSchema a, ToJsonDeserializer (PrimitivesOf a)) => FromJSON a Source # | |