purescript-iso 0.0.2.1 → 0.0.3
raw patch · 11 files changed
+38/−46 lines, 11 filesdep +deepseq
Dependencies added: deepseq
Files
- purescript-iso.cabal +4/−2
- src/Data/Aeson/JSONDateTime.hs +3/−2
- src/Data/Aeson/JSONEither.hs +3/−1
- src/Data/Aeson/JSONEmailAddress.hs +5/−2
- src/Data/Aeson/JSONInt.hs +3/−3
- src/Data/Aeson/JSONInteger.hs +3/−8
- src/Data/Aeson/JSONScientific.hs +3/−8
- src/Data/Aeson/JSONString.hs +5/−17
- src/Data/Aeson/JSONTuple.hs +3/−1
- src/Data/Aeson/JSONUnit.hs +3/−1
- src/Data/Aeson/JSONVoid.hs +3/−1
purescript-iso.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 5a8f0bf52c2d05c29489bec4ce87c26941be52640d60ae91078e9fe8470a6fdf+-- hash: ca2f0181c9dc623b5d3b883c1e50bf817a79ecdc527e6b7c2283e063662be81f name: purescript-iso-version: 0.0.2.1+version: 0.0.3 synopsis: Isomorphic trivial data type definitions over JSON description: Please see the README on GitHub at <https://github.com/githubuser/purescript-iso#readme> category: Web@@ -55,6 +55,7 @@ , base >=4.7 && <5 , bytestring , containers+ , deepseq , emailaddress >=0.2.0.0 , monad-control , mtl@@ -89,6 +90,7 @@ , base >=4.7 && <5 , bytestring , containers+ , deepseq , emailaddress >=0.2.0.0 , monad-control , mtl
src/Data/Aeson/JSONDateTime.hs view
@@ -7,9 +7,10 @@ import Data.Time ( UTCTime, formatTime, iso8601DateFormat, defaultTimeLocale- , getCurrentTime, parseTimeOrError)+ , getCurrentTime) import Data.Aeson (ToJSON, FromJSON, decode) import qualified Data.ByteString.Lazy.UTF8 as LBS8+import Control.DeepSeq (NFData) import Test.QuickCheck (Arbitrary (..)) import GHC.Generics (Generic) import System.IO.Unsafe (unsafePerformIO)@@ -17,7 +18,7 @@ newtype JSONDateTime = JSONDateTime { getJSONDateTime :: UTCTime- } deriving (Eq, Ord, Show, Generic, ToJSON, FromJSON)+ } deriving (Eq, Ord, Show, Generic, ToJSON, FromJSON, NFData) jsonDateTime :: UTCTime -> JSONDateTime
src/Data/Aeson/JSONEither.hs view
@@ -1,12 +1,14 @@ {-# LANGUAGE OverloadedStrings , DeriveGeneric+ , DeriveAnyClass #-} module Data.Aeson.JSONEither where import Data.Aeson (ToJSON (..), FromJSON (..), Value (Object), object, (.=), (.:)) import Data.Aeson.Types (typeMismatch)+import Control.DeepSeq (NFData) import Control.Applicative ((<|>)) import Test.QuickCheck (Arbitrary (..)) import Test.QuickCheck.Gen (oneof)@@ -16,7 +18,7 @@ data JSONEither a b = JSONLeft a | JSONRight b- deriving (Eq, Ord, Show, Generic)+ deriving (Eq, Ord, Show, Generic, NFData) instance (ToJSON a, ToJSON b) => ToJSON (JSONEither a b) where toJSON x = case x of
src/Data/Aeson/JSONEmailAddress.hs view
@@ -7,10 +7,10 @@ import Text.EmailAddress (EmailAddress, emailAddressFromString) import Data.Aeson (ToJSON, FromJSON)-import qualified Data.Char as Char import Control.Monad (replicateM)+import Control.DeepSeq (NFData (..)) import Test.QuickCheck (Arbitrary (..))-import Test.QuickCheck.Gen (elements, scale, choose)+import Test.QuickCheck.Gen (elements, choose) import GHC.Generics (Generic) -- FIXME restrict to 64 x 63 chars@@ -18,6 +18,9 @@ newtype JSONEmailAddress = JSONEmailAddress { getJSONEmailAddress :: EmailAddress } deriving (Eq, Ord, Show, Generic, FromJSON, ToJSON)++instance NFData JSONEmailAddress where+ rnf (JSONEmailAddress x) = seq x () instance Arbitrary JSONEmailAddress where arbitrary = do
src/Data/Aeson/JSONInt.hs view
@@ -7,12 +7,12 @@ import Data.Aeson (ToJSON, FromJSON) import Data.Int (Int32)+import Control.DeepSeq (NFData) import GHC.Generics (Generic) import Test.QuickCheck (Arbitrary (..))-import Test.QuickCheck.Gen (scale)-import System.IO.Unsafe (unsafePerformIO) newtype JSONInt = JSONInt { getJSONInt :: Int32- } deriving (Eq, Ord, Enum, Show, Read, Generic, Num, Real, Integral, ToJSON, FromJSON, Arbitrary)+ } deriving ( Eq, Ord, Enum, Show, Read, Generic, Num, Real, Integral+ , ToJSON, FromJSON, Arbitrary, NFData)
src/Data/Aeson/JSONInteger.hs view
@@ -7,19 +7,17 @@ import Data.Aeson (ToJSON (..), FromJSON (..), Value (String)) import Data.Aeson.Types (typeMismatch)-import Data.Aeson.Attoparsec (attoAeson)-import Data.Attoparsec.Text (decimal, signed) import Data.Scientific (Scientific, coefficient, base10Exponent, scientific) import qualified Data.Text as T import Text.Read (readMaybe)+import Control.DeepSeq (NFData) import GHC.Generics (Generic) import Test.QuickCheck (Arbitrary (..))-import Test.QuickCheck.Gen (scale, elements, listOf1)-import System.IO.Unsafe (unsafePerformIO)+import Test.QuickCheck.Gen (elements, listOf1) newtype JSONInteger = JSONInteger Scientific- deriving (Eq, Ord, Show, Read, Generic, Num, Real)+ deriving (Eq, Ord, Show, Read, Generic, Num, Real, NFData) instance Enum JSONInteger where toEnum = jsonInteger . fromIntegral@@ -75,6 +73,3 @@ s <- listOf1 (elements ['0'..'9']) case readMaybe s of Just x -> pure x- go x = unsafePerformIO $ do- print x- pure x
src/Data/Aeson/JSONScientific.hs view
@@ -7,20 +7,18 @@ import Data.Aeson (ToJSON (..), FromJSON (..), Value (String)) import Data.Aeson.Types (typeMismatch)-import Data.Aeson.Attoparsec (attoAeson)-import Data.Attoparsec.Text (decimal, signed) import Data.Scientific (Scientific, coefficient, base10Exponent) import qualified Data.Text as T import Text.Read (readMaybe)+import Control.DeepSeq (NFData) import GHC.Generics (Generic) import Test.QuickCheck (Arbitrary (..))-import Test.QuickCheck.Gen (scale, elements, listOf1, listOf)-import System.IO.Unsafe (unsafePerformIO)+import Test.QuickCheck.Gen (elements, listOf1, listOf) newtype JSONScientific = JSONScientific { getJSONScientific :: Scientific- } deriving (Eq, Ord{-, Enum-}, Show, Read, Generic, Num, Real{-, Integral-})+ } deriving (Eq, Ord, Show, Read, Generic, Num, Real, NFData, Fractional) instance ToJSON JSONScientific where toJSON (JSONScientific x) = toJSON $@@ -61,6 +59,3 @@ p <- listOf (elements ['0'..'9']) case readMaybe (s ++ (if length p == 0 then "" else "." ++ p)) of Just x -> pure x- go x = unsafePerformIO $ do- print x- pure x
src/Data/Aeson/JSONString.hs view
@@ -4,28 +4,16 @@ , DeriveGeneric #-} -module Data.Aeson.JSONString (JSONString, jsonString, getJSONString) where+module Data.Aeson.JSONString (JSONString (..)) where -import Data.Monoid ((<>)) import Data.Text (Text)-import qualified Data.Text as T import Data.Aeson (ToJSON, FromJSON)+import Data.String (IsString)+import Control.DeepSeq (NFData) import GHC.Generics (Generic)-import Test.QuickCheck (Arbitrary (..))+import Test.QuickCheck (Arbitrary) import Test.QuickCheck.Instances () newtype JSONString = JSONString Text- deriving (Eq, Ord, Generic, ToJSON, FromJSON)---jsonString :: Text -> JSONString-jsonString = JSONString -- . T.pack . show---getJSONString :: JSONString -> Text-getJSONString (JSONString x) = x -- T.pack $ read $ T.unpack x---instance Arbitrary JSONString where- arbitrary = jsonString <$> arbitrary+ deriving (Eq, Ord, Generic, ToJSON, FromJSON, NFData, IsString, Arbitrary)
src/Data/Aeson/JSONTuple.hs view
@@ -1,18 +1,20 @@ {-# LANGUAGE OverloadedStrings , DeriveGeneric+ , DeriveAnyClass #-} module Data.Aeson.JSONTuple where import Data.Aeson (ToJSON (..), FromJSON (..), Value (Object), object, (.=), (.:)) import Data.Aeson.Types (typeMismatch)+import Control.DeepSeq (NFData) import Test.QuickCheck (Arbitrary (..)) import GHC.Generics (Generic) data JSONTuple a b = JSONTuple a b- deriving (Eq, Ord, Show, Generic)+ deriving (Eq, Ord, Show, Generic, NFData) instance (ToJSON a, ToJSON b) => ToJSON (JSONTuple a b) where toJSON (JSONTuple a b) = object ["l" .= a, "r" .= b]
src/Data/Aeson/JSONUnit.hs view
@@ -1,18 +1,20 @@ {-# LANGUAGE OverloadedStrings , DeriveGeneric+ , DeriveAnyClass #-} module Data.Aeson.JSONUnit where import Data.Aeson (ToJSON (..), FromJSON (..), Value (String)) import Data.Aeson.Types (typeMismatch)+import Control.DeepSeq (NFData) import Test.QuickCheck (Arbitrary (..)) import GHC.Generics (Generic) data JSONUnit = JSONUnit- deriving (Eq, Ord, Show, Generic)+ deriving (Eq, Ord, Show, Generic, NFData) instance Arbitrary JSONUnit where arbitrary = pure JSONUnit
src/Data/Aeson/JSONVoid.hs view
@@ -1,17 +1,19 @@ {-# LANGUAGE OverloadedStrings , DeriveGeneric+ , DeriveAnyClass #-} module Data.Aeson.JSONVoid where import Data.Aeson (ToJSON (..), FromJSON (..), Value (String)) import Data.Aeson.Types (typeMismatch)+import Control.DeepSeq (NFData) import GHC.Generics (Generic) data JSONVoid- deriving (Generic)+ deriving (Generic, NFData) instance ToJSON JSONVoid where toJSON _ = String ""