packages feed

JsonGrammar 0.2 → 0.3

raw patch · 2 files changed

+43/−26 lines, 2 filesdep +attoparsecdep +bytestringdep +time

Dependencies added: attoparsec, bytestring, time

Files

JsonGrammar.cabal view
@@ -1,5 +1,5 @@ Name:           JsonGrammar-Version:        0.2+Version:        0.3 Synopsis:       Combinators for bidirectional JSON parsing Description:   	Combinators for bidirectional JSON parsing @@ -31,7 +31,10 @@                     semigroups >= 0.5 && < 0.6,                     template-haskell >= 2.4 && < 2.6,                     -- constraints copied from aeson-0.3.2.5:+                    attoparsec >= 0.8.5.3,+                    bytestring,                     text >= 0.11.0.2,+                    time,                     vector >= 0.7  Source-Repository head
Language/JsonGrammar.hs view
@@ -14,24 +14,31 @@      ) where -import Data.Iso hiding (option)- import Prelude hiding (id, (.), head, maybe, either) -import Control.Category-import Control.Monad- import Data.Aeson hiding (object) import Data.Aeson.Types (parseMaybe)+import Data.Attoparsec.Number+import Data.ByteString (ByteString)+import qualified Data.ByteString.Lazy as Lazy+import Data.Int+import Data.IntSet+import Data.Iso hiding (option) import qualified Data.Map as M import Data.Maybe (fromMaybe) import Data.String import Data.Text (Text)+import qualified Data.Text.Lazy as Lazy+import Data.Time.Clock import qualified Data.Vector as V import qualified Data.Vector.Generic as VG import qualified Data.Vector.Fusion.Stream as VS+import Data.Word +import Control.Category+import Control.Monad + aeObject :: Iso (Object :- t) (Value :- t) aeArray  :: Iso (Array  :- t) (Value :- t) aeNull   :: Iso            t  (Value :- t)@@ -148,32 +155,39 @@ instance Json a => Json [a] where   grammar = list grammar -instance Json Bool where-  grammar = liftAeson--instance Json Int where-  grammar = liftAeson--instance Json Integer where-  grammar = liftAeson--instance Json Float where-  grammar = liftAeson--instance Json Double where-  grammar = liftAeson--instance Json [Char] where-  grammar = liftAeson- instance Json a => Json (Maybe a) where   grammar = option grammar  instance (Json a, Json b) => Json (Either a b) where   grammar = either grammar grammar -instance Json Value where-  grammar = id++instance Json Bool            where grammar = liftAeson+instance Json Char            where grammar = liftAeson+instance Json Double          where grammar = liftAeson+instance Json Float           where grammar = liftAeson+instance Json Int             where grammar = liftAeson+instance Json Int8            where grammar = liftAeson+instance Json Int16           where grammar = liftAeson+instance Json Int32           where grammar = liftAeson+instance Json Int64           where grammar = liftAeson+instance Json Integer         where grammar = liftAeson+instance Json Word            where grammar = liftAeson+instance Json Word8           where grammar = liftAeson+instance Json Word16          where grammar = liftAeson+instance Json Word32          where grammar = liftAeson+instance Json Word64          where grammar = liftAeson+instance Json ()              where grammar = liftAeson+instance Json ByteString      where grammar = liftAeson+instance Json Lazy.ByteString where grammar = liftAeson+instance Json Number          where grammar = liftAeson+instance Json Text            where grammar = liftAeson+instance Json Lazy.Text       where grammar = liftAeson+instance Json IntSet          where grammar = liftAeson+instance Json UTCTime         where grammar = liftAeson+instance Json DotNetTime      where grammar = liftAeson+instance Json Value           where grammar = id+instance Json [Char]          where grammar = liftAeson  unsafeToJson :: Json a => String -> a -> Value unsafeToJson context value =