packages feed

typed-uuid 0.0.0.2 → 0.1.0.0

raw patch · 3 files changed

+75/−36 lines, 3 filesdep +yamlparse-applicativePVP ok

version bump matches the API change (PVP)

Dependencies added: yamlparse-applicative

API changes (from Hackage documentation)

- Data.UUID.Typed: jsonParseUUID :: Value -> Parser (UUID a)
- Data.UUID.Typed: parseUUID :: Text -> Maybe (UUID a)
- Data.UUID.Typed: textJSONParseUUID :: Text -> Parser (UUID a)
- Data.UUID.Typed: uuidBs :: UUID a -> ByteString
- Data.UUID.Typed: uuidLBs :: UUID a -> ByteString
+ Data.UUID.Typed: instance YamlParse.Applicative.Class.YamlKeySchema (Data.UUID.Typed.UUID a)
+ Data.UUID.Typed: instance YamlParse.Applicative.Class.YamlSchema (Data.UUID.Typed.UUID a)
+ Data.UUID.Typed: parseUUIDAsciiBytes :: ByteString -> Maybe (UUID a)
+ Data.UUID.Typed: parseUUIDLazyAsciiBytes :: ByteString -> Maybe (UUID a)
+ Data.UUID.Typed: parseUUIDText :: Text -> Maybe (UUID a)
+ Data.UUID.Typed: uuidASCIIBytes :: UUID a -> ByteString
+ Data.UUID.Typed: uuidLazyASCIIBytes :: UUID a -> ByteString

Files

ChangeLog.md view
@@ -2,6 +2,21 @@  ## Unreleased changes +## [0.1.0.0] - 2020-05-10++### Added++* `parseUUIDAsciiBytes`+* `parseUUIDLazyAsciiBytes`+* `instance YamlSchema (UUID a)`+* `instance YamlKeySchema (UUID a)`++### Changed++* Renamed `uuidBs` to `uuidASCIIBytes`+* Renamed `uuidLBs` to `uuidLazyASCIIBytes`+* Renamed `parseUUID` to `parseUUIDText`+ ## [0.0.0.2] - 2020-02-13  Put a lower bound on the base version
src/Data/UUID/Typed.hs view
@@ -3,13 +3,22 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} -module Data.UUID.Typed where--import Control.Monad.IO.Class-import GHC.Generics-import Text.Read+module Data.UUID.Typed+  ( UUID (..),+    uuidText,+    uuidString,+    uuidASCIIBytes,+    uuidLazyASCIIBytes,+    nextRandomUUID,+    parseUUIDText,+    parseUUIDString,+    parseUUIDAsciiBytes,+    parseUUIDLazyAsciiBytes,+  )+where  import Control.DeepSeq+import Control.Monad.IO.Class import Data.Aeson as JSON import Data.Aeson.Types as JSON import Data.Binary@@ -19,51 +28,59 @@ import Data.Hashable import qualified Data.Text as T import Data.Text (Text)+import qualified Data.UUID as UUID+import qualified Data.UUID.V4 as UUID+import Data.Validity+import Data.Validity.UUID () import Foreign.Storable+import GHC.Generics import System.Random+import Text.Read import Web.HttpApiData--import Data.Validity-import Data.Validity.UUID ()--import qualified Data.UUID as UUID-import qualified Data.UUID.V4 as UUID--newtype UUID a =-  UUID-    { unUUID :: UUID.UUID-    }-  deriving (Eq, Ord, Generic, Data, Storable, Binary, NFData, Hashable, Random)--instance Validity (UUID a)--instance Show (UUID a) where-  show (UUID u) = show u--instance Read (UUID a) where-  readPrec = UUID <$> readPrec+import YamlParse.Applicative (YamlKeySchema (..), YamlSchema (..), extraParser, viaYamlSchema) -uuidBs :: UUID a -> SB.ByteString-uuidBs (UUID uuid) = UUID.toASCIIBytes uuid+newtype UUID a+  = UUID+      { unUUID :: UUID.UUID+      }+  deriving (Eq, Ord, Generic, Data, Storable, Binary, NFData, Hashable, Random, Show, Read, Validity) -uuidLBs :: UUID a -> LB.ByteString-uuidLBs = LB.fromStrict . uuidBs+-- | See 'UUID.toText'+uuidText :: UUID a -> Text+uuidText (UUID uuid) = UUID.toText uuid +-- | See 'UUID.toString' uuidString :: UUID a -> String uuidString (UUID uuid) = UUID.toString uuid -uuidText :: UUID a -> Text-uuidText (UUID uuid) = UUID.toText uuid+-- | See 'UUID.toASCIIBytes'+uuidASCIIBytes :: UUID a -> SB.ByteString+uuidASCIIBytes (UUID uuid) = UUID.toASCIIBytes uuid +-- | See 'UUID.toLazyASCIIBytes'+uuidLazyASCIIBytes :: UUID a -> LB.ByteString+uuidLazyASCIIBytes (UUID uuid) = UUID.toLazyASCIIBytes uuid++-- | See 'UUID.nextRandom' nextRandomUUID :: MonadIO m => m (UUID a) nextRandomUUID = liftIO $ UUID <$> UUID.nextRandom -parseUUID :: Text -> Maybe (UUID a)-parseUUID = fmap UUID . UUID.fromText+-- | See 'UUID.fromText'+parseUUIDText :: Text -> Maybe (UUID a)+parseUUIDText = fmap UUID . UUID.fromText +-- | See 'UUID.fromString' parseUUIDString :: String -> Maybe (UUID a) parseUUIDString = fmap UUID . UUID.fromString +-- | See 'UUID.parseUUIDAsciiBytes'+parseUUIDAsciiBytes :: SB.ByteString -> Maybe (UUID a)+parseUUIDAsciiBytes = fmap UUID . UUID.fromASCIIBytes++-- | See 'UUID.parseUUIDLazyAsciiBytes'+parseUUIDLazyAsciiBytes :: LB.ByteString -> Maybe (UUID a)+parseUUIDLazyAsciiBytes = fmap UUID . UUID.fromLazyASCIIBytes+ instance FromJSONKey (UUID a) where   fromJSONKey = FromJSONKeyTextParser textJSONParseUUID @@ -71,7 +88,13 @@   toJSONKey = toJSONKeyText (UUID.toText . unUUID)  instance FromJSON (UUID a) where-  parseJSON = jsonParseUUID+  parseJSON = viaYamlSchema++instance YamlSchema (UUID a) where+  yamlSchema = extraParser textJSONParseUUID yamlSchema++instance YamlKeySchema (UUID a) where+  yamlKeySchema = extraParser textJSONParseUUID yamlKeySchema  jsonParseUUID :: Value -> Parser (UUID a) jsonParseUUID = withText "UUID" textJSONParseUUID
typed-uuid.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 689ba6b86a977a9b1605472b0ce39c908c5cd8db9682482bbb92d2e30be10973+-- hash: 3beab03fce46280926d3d2293c040ade8b4b61d482353da4ed41730cda4b0cc2  name:           typed-uuid-version:        0.0.0.2+version:        0.1.0.0 synopsis:       Phantom-Typed version of UUID description:    Please see the README on Github at <https://github.com/NorfairKing/typed-uuid#readme> category:       Data@@ -47,4 +47,5 @@     , uuid >=1.3 && <1.4     , validity     , validity-uuid >=0.0+    , yamlparse-applicative   default-language: Haskell2010