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 +5/−0
- generic-xmlpickler.cabal +17/−7
- tests/Main.hs +1/−1
- tests/PickleUtils.hs +28/−0
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."