@hackage generic-xmlpickler0.1.0.6
Generic generation of HXT XmlPickler instances using GHC Generics
Installation
Tested Compilers
Dependencies (5)
Dependents (3)
@hackage/acme-everything, @hackage/rest-example, @hackage/rest-types
generic-xmlpickler
This package allows you to automatically derive hxt picklers (conversions to and from xml) using GHC Generics. It has been ported from regular-xmlpickler
A simple example:
{-# LANGUAGE DeriveGeneric #-}
import GHC.Generics
import Data.Maybe (listToMaybe)
import Generics.XmlPickler (gxpickle)
import Text.XML.HXT.Arrow.Pickle (XmlPickler (..), showPickled, unpickleDoc)
import Text.XML.HXT.Parser.XmlParsec (xread)
data User = User
{ name :: String
, admin :: Bool
} deriving (Show, Generic)
instance XmlPickler User where
xpickle = gxpickle
userString :: String
userString = showPickled [] (User "Simon" True)
-- = "<user><name>Simon</name><admin>true</admin></user>"
user :: Maybe User
user = unpickleDoc xpickle =<< listToMaybe (xread "<user><name>Simon</name><admin>true</admin></user>")
-- = Just (User {name = "Simon", admin = True})