generic-xmlpickler-0.1.0.5: Generic generation of HXT XmlPickler instances using GHC Generics.

Safe HaskellNone
LanguageHaskell98

Generics.XmlPickler

Contents

Synopsis

Documentation

gxpickle :: forall a. (Generic a, GXmlPickler (Rep a), ConNames (Rep a)) => PU a #

The generic pickler. Uses a tag for each constructor with the lower case constructor name, and a tag for each record field with the lower case field name. Most values are pickled using their own XmlPickler instance, and Strings are pickled as possibly empty text nodes.

class GXmlPickler f where #

The generic XmlPickler class. This gives generic xml picklers for the functors from Regular. These are usually not used directly.

Minimal complete definition

gxpicklef

Methods

gxpicklef :: PU a -> PU (f a) #

Instances

GXmlPickler U1 # 

Methods

gxpicklef :: PU a -> PU (U1 a) #

GXmlPickler (K1 i Text) # 

Methods

gxpicklef :: PU a -> PU (K1 i Text a) #

GXmlPickler (K1 i String) # 

Methods

gxpicklef :: PU a -> PU (K1 i String a) #

XmlPickler a => GXmlPickler (K1 i a) # 

Methods

gxpicklef :: PU a -> PU (K1 i a a) #

(GXmlPickler f, GXmlPickler g) => GXmlPickler ((:+:) f g) # 

Methods

gxpicklef :: PU a -> PU ((f :+: g) a) #

(GXmlPickler f, GXmlPickler g) => GXmlPickler ((:*:) f g) # 

Methods

gxpicklef :: PU a -> PU ((f :*: g) a) #

GXmlPickler f => GXmlPickler (M1 D c f) # 

Methods

gxpicklef :: PU a -> PU (M1 D c f a) #

(Constructor Meta c, GXmlPickler f) => GXmlPickler (M1 C c f) # 

Methods

gxpicklef :: PU a -> PU (M1 C c f a) #

Selector Meta c => GXmlPickler (M1 S c (K1 i (Maybe Text))) # 

Methods

gxpicklef :: PU a -> PU (M1 S c (K1 i (Maybe Text)) a) #

Selector Meta c => GXmlPickler (M1 S c (K1 i (Maybe String))) # 

Methods

gxpicklef :: PU a -> PU (M1 S c (K1 i (Maybe String)) a) #

(XmlPickler a, Selector Meta c) => GXmlPickler (M1 S c (K1 i (Maybe a))) # 

Methods

gxpicklef :: PU a -> PU (M1 S c (K1 i (Maybe a)) a) #

(Selector Meta c, GXmlPickler f) => GXmlPickler (M1 S c f) # 

Methods

gxpicklef :: PU a -> PU (M1 S c f a) #

xpEither :: PU a -> PU b -> PU (Either a b) #

Combine two picklers into a pickler for Either. While pickling, check if the either is a Left or Right and use the appropriate pickler. During unpickling, first try the first, and if it fails, try the second.

Orphan instances

XmlPickler Bool # 

Methods

xpickle :: PU Bool #

(XmlPickler a, XmlPickler b) => XmlPickler (Either a b) # 

Methods

xpickle :: PU (Either a b) #