rfc 0.0.0.8 → 0.0.0.9
raw patch · 2 files changed
+30/−2 lines, 2 filesdep ~aesonPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson
API changes (from Hackage documentation)
Files
- rfc.cabal +4/−2
- src/RFC/Data/UUID.hs +26/−0
rfc.cabal view
@@ -1,5 +1,5 @@ name: rfc-version: 0.0.0.8+version: 0.0.0.9 synopsis: Robert Fischer's Common library description: An enhanced Prelude and various utilities for Aeson, Servant, PSQL, and Redis that Robert Fischer uses. homepage: https://github.com/RobertFischer/rfc#README.md@@ -35,7 +35,6 @@ if flag(Browser) ghc-options: -dedupe build-depends: base >= 4.7 && < 5- , aeson , servant , classy-prelude , uuid-types@@ -58,9 +57,12 @@ , vector , lifted-async , text+ if flag(Browser)+ build-depends: aeson if !flag(Browser) build-depends: servant-server , wai+ , aeson >= 1.2.3.0 , wai-extra , wai-cors , postgresql-simple >= 0.5.3.0
src/RFC/Data/UUID.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeSynonymInstances #-} module RFC.Data.UUID@@ -13,12 +14,20 @@ import Data.UUID.Types import qualified Data.UUID.Types as UUID +#if MIN_VERSION_aeson(1,1,0)+-- UUID has ToJSON and FromJSON+#else+import Data.Aeson.Types+#endif+ #ifndef GHCJS_BROWSER+ import Database.PostgreSQL.Simple.FromRow import Database.PostgreSQL.Simple.ToRow import Database.PostgreSQL.Simple.Types (Only (..)) #endif + #ifndef GHCJS_BROWSER instance FromRow UUID where fromRow = do@@ -27,6 +36,23 @@ instance ToRow UUID where toRow id = toRow $ Only id+#endif++#if MIN_VERSION_aeson(1,1,0)+-- UUID has ToJSON and FromJSON+#else++instance ToJSON UUID where+ toJSON = toJSON . UUID.toText++instance FromJSON UUID where+ parseJSON (String txt) =+ case UUID.fromText txt of+ Nothing -> fail $ "Invalid UUID: " ++ cs txt+ Just uuid -> return uuid++ parseJSON invalid = typeMismatch "UUID" invalid+ #endif instance ConvertibleStrings UUID String where