generic-xmlpickler

Generic generation of HXT XmlPickler instances using GHC Generics.

http://github.com/silkapp/generic-xmlpickler

Version on this page:0.1.0.3@rev:1
LTS Haskell 12.26:0.1.0.5@rev:8
Stackage Nightly 2018-09-28:0.1.0.5@rev:8
Latest on Hackage:0.1.0.6

See all snapshots generic-xmlpickler appears in

BSD-3-Clause licensed by Silk
Maintained by [email protected]
This version can be pinned in stack with:generic-xmlpickler-0.1.0.3@sha256:9011a4c8ce1e1c805d146722d2a6b19acd8c31c661888d78b4ea639ed4e24996,1495

Module documentation for 0.1.0.3

generic-xmlpickler

Build Status

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})

Changes

0.1.0.3

  • Allow generic-deriving 1.8.*.

0.1.0.2

  • Fix build on GHC-7.4

0.1.0.1

  • Add test suite and fix bugs that produced empty tag names.

0.1.0.0

  • Initial release, ported from regular-xmlpickler.