License | BSD-3-Clause |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
Swarm.Doc.Schema.Parse
Description
There are no modern, comprehensive JSON Schema parsing libraries in Haskell, as explained in post https://dev.to/sshine/a-review-of-json-schema-libraries-for-haskell-321.
Therefore, a bespoke parser for a small subset of JSON Schema is implemented here, simply for rendering Markdown documentation from Swarm's schema.
Synopsis
- data SchemaData = SchemaData {}
- data Members
- data ToplevelSchema = ToplevelSchema {
- title :: Text
- description :: Maybe Pandoc
- content :: SwarmSchema
- members :: Maybe Members
- footerPaths :: [FilePath]
Documentation
data SchemaData Source #
Includes everything needed to render the schema to markdown
Constructors
SchemaData | |
Fields |
Constructors
ObjectProperties (Map Text SwarmSchema) | |
ListMembers (ItemDescription SwarmSchema) | |
EnumMembers (NonEmpty Text) |
data ToplevelSchema Source #
Constructors
ToplevelSchema | |
Fields
|
Instances
FromJSON ToplevelSchema Source # | |
Defined in Swarm.Doc.Schema.Parse Methods parseJSON :: Value -> Parser ToplevelSchema # parseJSONList :: Value -> Parser [ToplevelSchema] # | |
Show ToplevelSchema Source # | |
Defined in Swarm.Doc.Schema.Parse Methods showsPrec :: Int -> ToplevelSchema -> ShowS # show :: ToplevelSchema -> String # showList :: [ToplevelSchema] -> ShowS # | |
Eq ToplevelSchema Source # | |
Defined in Swarm.Doc.Schema.Parse Methods (==) :: ToplevelSchema -> ToplevelSchema -> Bool # (/=) :: ToplevelSchema -> ToplevelSchema -> Bool # | |
Ord ToplevelSchema Source # | |
Defined in Swarm.Doc.Schema.Parse Methods compare :: ToplevelSchema -> ToplevelSchema -> Ordering # (<) :: ToplevelSchema -> ToplevelSchema -> Bool # (<=) :: ToplevelSchema -> ToplevelSchema -> Bool # (>) :: ToplevelSchema -> ToplevelSchema -> Bool # (>=) :: ToplevelSchema -> ToplevelSchema -> Bool # max :: ToplevelSchema -> ToplevelSchema -> ToplevelSchema # min :: ToplevelSchema -> ToplevelSchema -> ToplevelSchema # |