aeson-via-0.2.1: Wrappers to derive-via Aeson ToJSON/FromJSON typeclasses
Safe HaskellSafe-Inferred
LanguageHaskell2010

AesonVia

Description

Wrappers to control generic ToJSON and FromJSON derivation with deriving-via. See the test for example definitions and their encoding.

Synopsis

Documentation

newtype AesonRecord a Source #

Generic deriving ToJSON/FromJSON via this removes the common field name prefix in the encoding.

Constructors

AesonRecord 

Fields

Instances

Instances details
(HasJSONOptions (AesonRecord a), Generic a, GFromJSON Zero (Rep a)) => FromJSON (AesonRecord a) Source # 
Instance details

Defined in AesonVia

(HasJSONOptions (AesonRecord a), Generic a, GToJSON Zero (Rep a), GToEncoding Zero (Rep a)) => ToJSON (AesonRecord a) Source # 
Instance details

Defined in AesonVia

HasJSONOptions (AesonRecord a) Source # 
Instance details

Defined in AesonVia

newtype AesonNewtype n o Source #

Generic deriving ToJSON/FromJSON via this yields an encoding equivalent to the wrapped type.

Constructors

AesonNewtype 

Fields

Instances

Instances details
(Newtype n, o ~ O n, FromJSON o) => FromJSON (AesonNewtype n o) Source # 
Instance details

Defined in AesonVia

(Newtype n, o ~ O n, ToJSON o) => ToJSON (AesonNewtype n o) Source # 
Instance details

Defined in AesonVia

HasJSONOptions (AesonNewtype n o) Source # 
Instance details

Defined in AesonVia

newtype AesonTag a Source #

Generic deriving ToJSON/FromJSON via this uses HasTagPrefix to turn Bounded Enum datatypes into enumerated strings.

Constructors

AesonTag 

Fields

Instances

Instances details
(HasJSONOptions (AesonTag a), Generic a, GFromJSON Zero (Rep a)) => FromJSON (AesonTag a) Source # 
Instance details

Defined in AesonVia

(HasJSONOptions (AesonTag a), Generic a, GToJSON Zero (Rep a), GToEncoding Zero (Rep a)) => ToJSON (AesonTag a) Source # 
Instance details

Defined in AesonVia

HasTagPrefix a => HasJSONOptions (AesonTag a) Source # 
Instance details

Defined in AesonVia

class HasJSONOptions a where Source #

Mostly an internal class directing constructor/field conversion.

Instances

Instances details
HasJSONOptions (AesonRecord a) Source # 
Instance details

Defined in AesonVia

HasTagPrefix a => HasJSONOptions (AesonTag a) Source # 
Instance details

Defined in AesonVia

HasJSONOptions (AesonNewtype n o) Source # 
Instance details

Defined in AesonVia

class HasTagPrefix a where Source #

Used with AesonTag to define a prefix to be removed from a Bounded Enum. For example, `data Foo = FooBar | FooBaz` would use the prefix Foo to yield converted string values bar and baz.

Methods

getTagPrefix :: Proxy a -> Text Source #