hslua-aeson 2.0.0 → 2.0.1
raw patch · 4 files changed
+34/−7 lines, 4 filesdep ~aesonPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson
API changes (from Hackage documentation)
Files
- CHANGELOG.md +6/−0
- hslua-aeson.cabal +3/−2
- src/HsLua/Aeson.hs +15/−3
- test/test-hslua-aeson.hs +10/−2
CHANGELOG.md view
@@ -2,6 +2,12 @@ `hslua-aeson` uses [PVP Versioning][]. +## hslua-aeson-2.0.1++Released 2021-12-28.++- Restored compatibility with aeson 1.5.+ ## hslua-aeson-2.0.0 Released 2021-12-17.
hslua-aeson.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: hslua-aeson-version: 2.0.0+version: 2.0.1 synopsis: Allow aeson data types to be used with lua. description: This package provides instances to push and receive any datatype encodable as JSON to and from the Lua stack.@@ -27,7 +27,7 @@ common common-options default-language: Haskell2010 build-depends: base >= 4.8 && < 5- , aeson >= 2.0 && < 2.1+ , aeson >= 1.5 && < 2.1 , bytestring >= 0.10.2 && < 0.12 , containers >= 0.5.9 && < 0.7 , hashable >= 1.2 && < 1.5@@ -39,6 +39,7 @@ , text >= 1.0 && < 1.3 , vector >= 0.7 default-extensions: BangPatterns+ , CPP , LambdaCase , OverloadedStrings , TypeApplications
src/HsLua/Aeson.hs view
@@ -35,8 +35,6 @@ ) where import Control.Monad ((<$!>), when)-import Data.Aeson.Key (Key, toText, fromText)-import Data.Aeson.KeyMap import Data.Scientific (Scientific, toRealFloat, fromFloatDigits) import Data.String (IsString (fromString)) import Data.Vector (Vector)@@ -44,9 +42,23 @@ import HsLua.Marshalling as Lua import qualified Data.Aeson as Aeson-import qualified Data.Aeson.KeyMap as KeyMap import qualified Data.Vector as Vector import qualified HsLua.Core.Unsafe as Unsafe++#if MIN_VERSION_aeson(2,0,0)+import Data.Aeson.Key (Key, toText, fromText)+import qualified Data.Aeson.KeyMap as KeyMap+type KeyMap = KeyMap.KeyMap+#else+import Data.Text (Text)+import qualified Data.HashMap.Strict as KeyMap+type Key = Text+type KeyMap = KeyMap.HashMap Key+toText :: Key -> Text+toText = id+fromText :: Text -> Key+fromText = id+#endif -- Scientific pushScientific :: Pusher e Scientific
test/test-hslua-aeson.hs view
@@ -7,7 +7,6 @@ -} import Control.Monad (when) import Data.AEq ((~==))-import Data.Aeson.Key (Key, fromText) import Data.ByteString (ByteString) import Data.Scientific (Scientific, toRealFloat, fromFloatDigits) import HsLua.Core as Lua@@ -20,10 +19,17 @@ import Test.QuickCheck.Instances () import qualified Data.Aeson as Aeson-import qualified Data.Aeson.KeyMap as KeyMap import qualified Data.Vector as Vector import qualified Test.QuickCheck.Monadic as QC +#if MIN_VERSION_aeson(2,0,0)+import Data.Aeson.Key (Key, fromText)+import qualified Data.Aeson.KeyMap as KeyMap+#else+import qualified Data.HashMap.Strict as KeyMap+#endif++ -- | Run this spec. main :: IO () main = defaultMain tests@@ -153,11 +159,13 @@ instance Arbitrary Aeson.Value where arbitrary = arbitraryValue 5 +#if MIN_VERSION_aeson(2,0,0) instance Arbitrary Key where arbitrary = fmap fromText arbitrary instance Arbitrary a => Arbitrary (KeyMap.KeyMap a) where arbitrary = fmap KeyMap.fromList arbitrary+#endif arbitraryValue :: Int -> Gen Aeson.Value arbitraryValue size = frequency