bond-0.5.0.0: Bond schema compiler and code generator

Copyright(c) Microsoft
LicenseMIT
Maintaineradamsap@microsoft.com
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Language.Bond.Syntax.JSON

Contents

Description

 

Synopsis

FromJSON and ToJSON instances

This module defines FromJSON and ToJSON instances for Bond abstract syntax tree. They allow using the aeson library to encode Bond AST types to JSON format:

> encode (Bond [] [Namespace Nothing ["example"]] [])
"{\"namespaces\":[{\"name\":[\"example\"]}],\"imports\":[],\"declarations\":[]}"

and decode Bond data types from JSON:

> decode "{\"namespaces\":[{\"name\":[\"example\"]}],\"imports\":[],\"declarations\":[]}" :: Maybe Bond
Just (Bond {bondImports = [], bondNamespaces = [Namespace {nsLanguage = Nothing, nsName = ["example"]}], bondDeclarations = []})

Orphan instances

ToJSON Bond Source # 
ToJSON Namespace Source # 
ToJSON Language Source # 
ToJSON Import Source # 
ToJSON Declaration Source # 
ToJSON Method Source # 
ToJSON TypeParam Source # 
ToJSON Constraint Source # 
ToJSON Constant Source # 
ToJSON Field Source # 
ToJSON Attribute Source # 
ToJSON Default Source # 
ToJSON Type Source # 
ToJSON Modifier Source # 
FromJSON Bond Source # 

Methods

parseJSON :: Value -> Parser Bond #

FromJSON Namespace Source # 
FromJSON Language Source # 
FromJSON Import Source # 
FromJSON Declaration Source # 
FromJSON Method Source # 
FromJSON TypeParam Source # 
FromJSON Constraint Source # 
FromJSON Constant Source # 
FromJSON Field Source # 
FromJSON Attribute Source # 
FromJSON Default Source # 
FromJSON Type Source # 

Methods

parseJSON :: Value -> Parser Type #

FromJSON Modifier Source #