| Maintainer | Brandon Chinn <brandon@leapyear.io> |
|---|---|
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| 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)
- type SchemaV = Schema' String NameLike
- type SchemaTypeV = SchemaType' String NameLike
- type SchemaObjectMapV = SchemaObjectMap' String NameLike
- data 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
Documentation
The schema definition for a JSON object.
Constructors
| Schema (SchemaObjectMap' s ty) |
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) |
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 #