hw-json-standard-cursor 0.2.3.0 → 0.2.3.1
raw patch · 8 files changed
+28/−13 lines, 8 filesdep ~bytestringdep ~doctestdep ~generic-lensPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: bytestring, doctest, generic-lens, lens, optparse-applicative
API changes (from Hackage documentation)
+ HaskellWorks.Data.Json.Standard.Cursor.Generic: instance GHC.Generics.Generic (HaskellWorks.Data.Json.Standard.Cursor.Generic.GenericCursor t v w)
+ HaskellWorks.Data.Json.Standard.Cursor.IbBp: instance GHC.Generics.Generic HaskellWorks.Data.Json.Standard.Cursor.IbBp.IbBp
+ HaskellWorks.Data.Json.Standard.Cursor.Internal.Blank: instance GHC.Generics.Generic HaskellWorks.Data.Json.Standard.Cursor.Internal.Blank.BlankState
+ HaskellWorks.Data.Json.Standard.Cursor.Internal.MakeIndex: instance GHC.Generics.Generic HaskellWorks.Data.Json.Standard.Cursor.Internal.MakeIndex.MiniBP
+ HaskellWorks.Data.Json.Standard.Cursor.Internal.StateMachine: instance GHC.Generics.Generic HaskellWorks.Data.Json.Standard.Cursor.Internal.StateMachine.IntState
+ HaskellWorks.Data.Json.Standard.Cursor.Internal.StateMachine: instance GHC.Generics.Generic HaskellWorks.Data.Json.Standard.Cursor.Internal.StateMachine.State
+ HaskellWorks.Data.Json.Standard.Cursor.SemiIndex: instance GHC.Generics.Generic (HaskellWorks.Data.Json.Standard.Cursor.SemiIndex.PreSiChunk v)
+ HaskellWorks.Data.Json.Standard.Cursor.SemiIndex: instance GHC.Generics.Generic (HaskellWorks.Data.Json.Standard.Cursor.SemiIndex.SemiIndex v)
+ HaskellWorks.Data.Json.Standard.Cursor.SemiIndex: instance GHC.Generics.Generic (HaskellWorks.Data.Json.Standard.Cursor.SemiIndex.SiChunk v)
+ HaskellWorks.Data.Json.Standard.Cursor.Type: instance GHC.Generics.Generic HaskellWorks.Data.Json.Standard.Cursor.Type.JsonType
Files
- hw-json-standard-cursor.cabal +1/−1
- src/HaskellWorks/Data/Json/Standard/Cursor/Generic.hs +3/−1
- src/HaskellWorks/Data/Json/Standard/Cursor/IbBp.hs +5/−3
- src/HaskellWorks/Data/Json/Standard/Cursor/Internal/Blank.hs +4/−1
- src/HaskellWorks/Data/Json/Standard/Cursor/Internal/MakeIndex.hs +3/−1
- src/HaskellWorks/Data/Json/Standard/Cursor/Internal/StateMachine.hs +4/−2
- src/HaskellWorks/Data/Json/Standard/Cursor/SemiIndex.hs +5/−3
- src/HaskellWorks/Data/Json/Standard/Cursor/Type.hs +3/−1
hw-json-standard-cursor.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2 name: hw-json-standard-cursor-version: 0.2.3.0+version: 0.2.3.1 synopsis: Memory efficient JSON parser description: Memory efficient JSON parser. Please see README.md category: Data
src/HaskellWorks/Data/Json/Standard/Cursor/Generic.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE InstanceSigs #-}@@ -11,6 +12,7 @@ , jsonCursorPos ) where +import GHC.Generics import HaskellWorks.Data.Positioning import HaskellWorks.Data.RankSelect.Base.Rank0 import HaskellWorks.Data.RankSelect.Base.Rank1@@ -26,7 +28,7 @@ , balancedParens :: !w , cursorRank :: !Count }- deriving (Eq, Show)+ deriving (Eq, Generic, Show) instance (BP.BalancedParens u, Rank1 u, Rank0 u) => TreeCursor (GenericCursor t v u) where firstChild :: GenericCursor t v u -> Maybe (GenericCursor t v u)
src/HaskellWorks/Data/Json/Standard/Cursor/IbBp.hs view
@@ -1,13 +1,15 @@-{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE DeriveGeneric #-} module HaskellWorks.Data.Json.Standard.Cursor.IbBp ( IbBp(..) , slowToIbBp- , simdToIbBp) where+ , simdToIbBp+ ) where import Control.Monad import Control.Monad.ST (ST) import Data.Word+import GHC.Generics import HaskellWorks.Data.Vector.AsVector64 import qualified Data.ByteString as BS@@ -24,7 +26,7 @@ data IbBp = IbBp { ib :: DVS.Vector Word64 , bp :: DVS.Vector Word64- }+ } deriving Generic slowToIbBp :: BS.ByteString -> IbBp slowToIbBp bs = IbBp
src/HaskellWorks/Data/Json/Standard/Cursor/Internal/Blank.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE DeriveGeneric #-} module HaskellWorks.Data.Json.Standard.Cursor.Internal.Blank ( blankJson@@ -7,6 +8,7 @@ import Data.ByteString (ByteString) import Data.Word import Data.Word8+import GHC.Generics import HaskellWorks.Data.Json.Standard.Cursor.Internal.Word8 import Prelude as P @@ -18,6 +20,7 @@ | InString | InNumber | InIdent+ deriving Generic blankJson :: [BS.ByteString] -> [BS.ByteString] blankJson = blankJson' InJson
src/HaskellWorks/Data/Json/Standard/Cursor/Internal/MakeIndex.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} @@ -15,6 +16,7 @@ import Data.Int import Data.Word import Data.Word8+import GHC.Generics import HaskellWorks.Data.Bits.BitWise import Prelude as P @@ -98,7 +100,7 @@ MiniTF -> Just (0xFF, (Just False , cs)) Nothing -> Nothing -data MiniBP = MiniN | MiniT | MiniF | MiniTF+data MiniBP = MiniN | MiniT | MiniF | MiniTF deriving Generic balancedParensOf :: Word8 -> MiniBP balancedParensOf c = case c of
src/HaskellWorks/Data/Json/Standard/Cursor/Internal/StateMachine.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE BinaryLiterals #-}+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} @@ -14,6 +15,7 @@ ) where import Data.Word+import GHC.Generics import HaskellWorks.Data.Bits.BitWise import qualified Data.Vector as DV@@ -22,9 +24,9 @@ {-# ANN module ("HLint: ignore Redundant guard" :: String) #-} -newtype IntState = IntState Int deriving (Eq, Ord, Show, Num)+newtype IntState = IntState Int deriving (Eq, Ord, Show, Num, Generic) -data State = InJson | InString | InEscape | InValue deriving (Eq, Enum, Bounded, Show)+data State = InJson | InString | InEscape | InValue deriving (Eq, Enum, Bounded, Show, Generic) phiTable :: DV.Vector (DVS.Vector Word8) phiTable = DV.generate 5 gos
src/HaskellWorks/Data/Json/Standard/Cursor/SemiIndex.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE BinaryLiterals #-} {-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE MultiWayIf #-}@@ -23,6 +24,7 @@ import Data.Bits.Pext import Data.Word import Foreign.Storable (Storable (..))+import GHC.Generics import HaskellWorks.Data.Bits.BitWise import HaskellWorks.Data.Bits.PopCount.PopCount1 import HaskellWorks.Data.Json.Standard.Cursor.Internal.StateMachine (IntState (..), State (..))@@ -50,17 +52,17 @@ { preSiChunkIb :: !v -- interest bits , preSiChunkBpOp :: !v -- balanced parens interest bits , preSiChunkBpCl :: !v -- balanced parens open close- } deriving (Functor, Traversable, Foldable)+ } deriving (Functor, Traversable, Foldable, Generic) data SiChunk v = SiChunk { siChunkIb :: !v -- interest bits , siChunkBp :: !v -- balanced parens open close- } deriving (Functor, Traversable, Foldable)+ } deriving (Functor, Traversable, Foldable, Generic) data SemiIndex v = SemiIndex { semiIndexIb :: !v , semiIndexBp :: !v- } deriving (Functor, Traversable, Foldable)+ } deriving (Functor, Traversable, Foldable, Generic) semiIndexBuilder :: LBS.ByteString -> SemiIndex B.Builder semiIndexBuilder lbs = SemiIndex (B.lazyByteString ibs) (B.byteString (BS.toByteString bps))
src/HaskellWorks/Data/Json/Standard/Cursor/Type.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -10,6 +11,7 @@ import Data.Char import Data.String import Data.Word8+import GHC.Generics import HaskellWorks.Data.Bits.BitWise import HaskellWorks.Data.Drop import HaskellWorks.Data.Json.Standard.Cursor.Generic@@ -32,7 +34,7 @@ | JsonTypeNumber | JsonTypeObject | JsonTypeString- deriving (Eq, Show)+ deriving (Eq, Show, Generic) class JsonTypeAt a where jsonTypeAtPosition :: Position -> a -> Maybe JsonType