File tree 1 file changed +14
-6
lines changed 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -110,16 +110,24 @@ instance Arbitrary BigInt where
110
110
newtype NotEmpty a = NotEmpty { notEmpty :: a }
111
111
deriving (Eq , Ord , Show )
112
112
113
+ toNotEmptyBy :: Functor m => ([Char ] -> a ) -> m (NonEmptyList Char ) -> m (NotEmpty a )
114
+ toNotEmptyBy f = fmap (coerce f)
115
+
116
+ arbitraryNotEmptyBy :: ([Char ] -> a ) -> Gen (NotEmpty a )
117
+ arbitraryNotEmptyBy f = toNotEmptyBy f arbitrary
118
+
119
+ shrinkNotEmptyBy :: ([Char ] -> a ) -> (a -> [Char ]) -> NotEmpty a -> [NotEmpty a ]
120
+ shrinkNotEmptyBy g f =
121
+ toNotEmptyBy g . shrink . coerce f
113
122
114
123
instance Arbitrary (NotEmpty T. Text ) where
115
- arbitrary = fmap (NotEmpty . T. pack . getNonEmpty) arbitrary
116
- shrink = fmap (NotEmpty . T. pack . getNonEmpty)
117
- . shrink . NonEmpty . T. unpack . notEmpty
124
+ arbitrary = arbitraryNotEmptyBy T. pack
125
+ shrink = shrinkNotEmptyBy T. pack T. unpack
118
126
119
127
instance Arbitrary (NotEmpty TL. Text ) where
120
- arbitrary = fmap ( NotEmpty . TL. pack . getNonEmpty) arbitrary
121
- shrink = fmap ( NotEmpty . TL. pack . getNonEmpty)
122
- . shrink . NonEmpty . TL. unpack . notEmpty
128
+ arbitrary = arbitraryNotEmptyBy TL. pack
129
+ shrink = shrinkNotEmptyBy TL. pack TL. unpack
130
+
123
131
124
132
data DecodeErr = Lenient | Ignore | Strict | Replace
125
133
deriving (Show , Eq , Bounded , Enum )
You can’t perform that action at this time.
0 commit comments