packages feed

generic-xmlpickler 0.1.0.5 → 0.1.0.6

raw patch · 4 files changed

+51/−8 lines, 4 filesdep −hxt-pickle-utilsdep ~basedep ~generic-derivingdep ~tastyPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: hxt-pickle-utils

Dependency ranges changed: base, generic-deriving, tasty

API changes (from Hackage documentation)

- Generics.XmlPickler: instance (Text.XML.HXT.Arrow.Pickle.Xml.XmlPickler a, GHC.Generics.Selector c) => Generics.XmlPickler.GXmlPickler (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Base.Maybe a)))
- Generics.XmlPickler: instance GHC.Generics.Selector c => Generics.XmlPickler.GXmlPickler (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Base.Maybe Data.Text.Internal.Text)))
- Generics.XmlPickler: instance GHC.Generics.Selector c => Generics.XmlPickler.GXmlPickler (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Base.Maybe GHC.Base.String)))
+ Generics.XmlPickler: instance (Text.XML.HXT.Arrow.Pickle.Xml.XmlPickler a, GHC.Generics.Selector c) => Generics.XmlPickler.GXmlPickler (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Maybe.Maybe a)))
+ Generics.XmlPickler: instance GHC.Generics.Selector c => Generics.XmlPickler.GXmlPickler (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Maybe.Maybe Data.Text.Internal.Text)))
+ Generics.XmlPickler: instance GHC.Generics.Selector c => Generics.XmlPickler.GXmlPickler (GHC.Generics.M1 GHC.Generics.S c (GHC.Generics.K1 i (GHC.Maybe.Maybe GHC.Base.String)))
- Generics.XmlPickler: gxpickle :: (Generic a, GXmlPickler (Rep a), ConNames (Rep a)) => PU a
+ Generics.XmlPickler: gxpickle :: forall a. (Generic a, GXmlPickler (Rep a), ConNames (Rep a)) => PU a

Files

CHANGELOG.md view
@@ -1,3 +1,8 @@+#### 0.1.0.6++* Support up to GHC 8.8+* Drop test dependency on `hxt-pickle-utils`+ #### 0.1.0.4  * Fix build on GHC 8.
generic-xmlpickler.cabal view
@@ -1,7 +1,7 @@ name:                generic-xmlpickler-version:             0.1.0.5+version:             0.1.0.6 description:         Generic generation of HXT XmlPickler instances using GHC Generics.-synopsis:            Generic generation of HXT XmlPickler instances using GHC Generics.+synopsis:            Generic generation of HXT XmlPickler instances using GHC Generics category:            XML, Data cabal-version:       >= 1.8 author:              Silk@@ -11,6 +11,16 @@ license:             BSD3 license-file:        LICENSE build-type:          Simple+tested-with:+    GHC == 7.4.2+  , GHC == 7.6.3+  , GHC == 7.8.4+  , GHC == 7.10.3+  , GHC == 8.0.2+  , GHC == 8.2.1+  , GHC == 8.4.4+  , GHC == 8.6.5+  , GHC == 8.8.1  extra-source-files:   CHANGELOG.md@@ -26,8 +36,8 @@   hs-source-dirs:    src   exposed-modules:   Generics.XmlPickler   build-depends:-      base >= 4.5 && < 4.10-    , generic-deriving >= 1.6 && < 1.11+      base >= 4.5 && < 4.14+    , generic-deriving >= 1.6 && < 1.14     , hxt >= 9.2 && < 9.4     , text   if impl(ghc < 7.6)@@ -37,14 +47,14 @@   ghc-options:       -Wall   hs-source-dirs:    tests   main-is:           Main.hs+  other-modules:     PickleUtils   type:              exitcode-stdio-1.0   build-depends:       base >= 4.5 && < 5     , generic-xmlpickler     , hxt >= 9.2 && < 9.4-    , hxt-pickle-utils == 0.1.*-    , tasty >= 0.10 && < 0.12-    , tasty-hunit == 0.9.*+    , tasty >= 0.10 && < 1.3+    , tasty-hunit >= 0.9 && < 0.11     , tasty-th == 0.1.*   if impl(ghc < 7.6)     build-depends:   ghc-prim >= 0.2 && < 0.5
tests/Main.hs view
@@ -14,8 +14,8 @@ import Test.Tasty.HUnit import Test.Tasty.TH import Text.XML.HXT.Arrow.Pickle-import Text.Xml.Pickle +import PickleUtils import Generics.XmlPickler  data SingleCons = SingleCons deriving (Show, Eq, Generic)
+ tests/PickleUtils.hs view
@@ -0,0 +1,28 @@+-- | Some utility functions for using hxt picklers.+module PickleUtils+  ( toXML+  , maybeFromXML+  , eitherFromXML+  ) where++import Control.Category+import Prelude hiding ((.))+import Text.XML.HXT.Core++-- | Convert a value to an XML string.+toXML :: XmlPickler p => p -> String+toXML = showPickled []++-- | Parse a string containing xml to a value, or `Nothing` if the+-- parse fails.+maybeFromXML :: XmlPickler a => String -> Maybe a+maybeFromXML = either (const Nothing) Just . eitherFromXML++-- | Parse a string containing xml to a value, or an error message on+-- failure.+eitherFromXML :: XmlPickler a => String -> Either String a+eitherFromXML text =+  case runLA (removeAllWhiteSpace . xread) text of+    []    -> Left "Failed to parse XML in eitherFromXML."+    [x]   -> unpickleDoc' xpickle x+    (_:_) -> Left "Multiple parses in eitherFromXML."