proto-lens-arbitrary 0.1.0.3 → 0.1.1.0
raw patch · 2 files changed
+6/−5 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.ProtoLens.Arbitrary: arbitraryMessage :: Message a => Gen a
Files
proto-lens-arbitrary.cabal view
@@ -1,5 +1,5 @@ name: proto-lens-arbitrary-version: 0.1.0.3+version: 0.1.1.0 synopsis: Arbitrary instances for proto-lens. description: The proto-lens-arbitrary allows generating arbitrary messages for
src/Data/ProtoLens/Arbitrary.hs view
@@ -9,7 +9,8 @@ {-# LANGUAGE RankNTypes #-} -- | An Arbitrary instance for protocol buffer Messages to use with QuickCheck. module Data.ProtoLens.Arbitrary- ( ArbitraryMessage(..),+ ( ArbitraryMessage(..)+ , arbitraryMessage ) where import Data.ProtoLens.Message@@ -66,8 +67,8 @@ arbitraryFieldValue :: FieldTypeDescriptor value -> Gen value arbitraryFieldValue ftd = case ftd of- MessageField -> unArbitraryMessage <$> arbitrary- GroupField -> unArbitraryMessage <$> arbitrary+ MessageField -> arbitraryMessage+ GroupField -> arbitraryMessage -- For enum fields, all we know is that the value is an instance of -- MessageEnum, meaning we can only use fromEnum, toEnum, or maybeToEnum. So -- we must rely on the instance of Arbitrary for Int and filter out only the@@ -119,7 +120,7 @@ shrinkFieldValue :: FieldTypeDescriptor value -> value -> [value] shrinkFieldValue ftd = case ftd of- MessageField -> map unArbitraryMessage . shrink . ArbitraryMessage+ MessageField -> shrinkMessage GroupField -> map unArbitraryMessage . shrink . ArbitraryMessage -- Shrink to the 0-equivalent Enum value if it's both a valid Enum value -- and the value isn't already 0.