| Maintainer | Brandon Chinn <[email protected]> |
|---|---|
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Aeson.Schema.Type
Description
Defines SchemaType, the AST that defines a JSON schema.
Synopsis
- data Schema' s ty = Schema (SchemaObjectMap' s ty)
- data SchemaType' s ty
- = SchemaScalar ty
- | SchemaMaybe (SchemaType' s ty)
- | SchemaTry (SchemaType' s ty)
- | SchemaList (SchemaType' s ty)
- | SchemaUnion [SchemaType' s ty]
- | SchemaObject (SchemaObjectMap' s ty)
- | SchemaInclude (Either ty (Schema' s ty))
- type SchemaV = Schema' String NameLike
- type SchemaTypeV = SchemaType' String NameLike
- type SchemaObjectMapV = SchemaObjectMap' String NameLike
- toSchemaObjectV :: SchemaV -> SchemaTypeV
- fromSchemaV :: SchemaV -> SchemaObjectMapV
- showSchemaV :: SchemaV -> String
- showSchemaTypeV :: SchemaTypeV -> String
- type Schema = Schema' Symbol Type
- type SchemaType = SchemaType' Symbol Type
- type family ToSchemaObject (schema :: Schema) :: SchemaType where ...
- type family FromSchema (schema :: Schema) :: SchemaObjectMap where ...
- class IsSchemaType (schemaType :: SchemaType) where
- toSchemaTypeV :: Proxy schemaType -> SchemaTypeV
- type IsSchemaObjectMap (pairs :: SchemaObjectMap) = All IsSchemaObjectPair pairs
- toSchemaV :: forall schema. IsSchemaObjectMap (FromSchema schema) => Proxy schema -> SchemaV
Documentation
The schema definition for a JSON object.
Constructors
| Schema (SchemaObjectMap' s ty) |
Instances
| (Show s, Show ty) => Show (Schema' s ty) Source # | |
| (Eq s, Eq ty) => Eq (Schema' s ty) Source # | |
| IsSchema schema => HasSchemaResult ('SchemaInclude ('Right schema :: Either Type Schema)) Source # | |
Defined in Data.Aeson.Schema.Internal Methods parseValue :: [Key] -> Value -> Parser (SchemaResult ('SchemaInclude ('Right schema))) Source # toValue :: SchemaResult ('SchemaInclude ('Right schema)) -> Value Source # showValue :: SchemaResult ('SchemaInclude ('Right schema)) -> ShowS Source # | |
| IsSchemaObjectMap (FromSchema schema) => IsSchemaType ('SchemaInclude ('Right schema :: Either Type Schema)) Source # | |
Defined in Data.Aeson.Schema.Type Methods toSchemaTypeV :: Proxy ('SchemaInclude ('Right schema)) -> SchemaTypeV Source # | |
data SchemaType' s ty Source #
The AST defining a JSON schema.
Constructors
| SchemaScalar ty | |
| SchemaMaybe (SchemaType' s ty) | |
| SchemaTry (SchemaType' s ty) | @since v1.2.0 |
| SchemaList (SchemaType' s ty) | |
| SchemaUnion [SchemaType' s ty] | @since v1.1.0 |
| SchemaObject (SchemaObjectMap' s ty) | |
| SchemaInclude (Either ty (Schema' s ty)) | An optimization for including schemas. Will always be @since v1.3.2 |
Instances
type SchemaTypeV = SchemaType' String NameLike Source #
type SchemaObjectMapV = SchemaObjectMap' String NameLike Source #
toSchemaObjectV :: SchemaV -> SchemaTypeV Source #
showSchemaV :: SchemaV -> String Source #
Show the given schema, as "{ key: Schema, ... }"
showSchemaTypeV :: SchemaTypeV -> String Source #
Pretty show the given SchemaType.
type Schema = Schema' Symbol Type Source #
The kind of schemas that may be used with Object; e.g.
data Payload (schema :: Schema) = Payload
{ getPayload :: Object schema
, timestamp :: UTCTime
}type SchemaType = SchemaType' Symbol Type Source #
type family ToSchemaObject (schema :: Schema) :: SchemaType where ... Source #
Equations
| ToSchemaObject ('Schema schema) = 'SchemaObject schema |
type family FromSchema (schema :: Schema) :: SchemaObjectMap where ... Source #
Equations
| FromSchema ('Schema schema) = schema |
class IsSchemaType (schemaType :: SchemaType) where Source #
Methods
toSchemaTypeV :: Proxy schemaType -> SchemaTypeV Source #
Instances
type IsSchemaObjectMap (pairs :: SchemaObjectMap) = All IsSchemaObjectPair pairs Source #
toSchemaV :: forall schema. IsSchemaObjectMap (FromSchema schema) => Proxy schema -> SchemaV Source #