@hackage / generic-xmlpickler

Generic generation of HXT XmlPickler instances using GHC Generics

Latest0.1.0.6

About

Metadata

  • Last updated , by AdamBergmark
  • License BSD-3-Clause
  • Categories XML
  • Maintained by: code@silk.co

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 8.8.1
  2. 8.6.5
  3. 8.4.4
  4. 8.0.2
  5. 7.10.3

Readme

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