on master help sign in
Drop even more ByteString related instances

This follows up on 9ee73f303cacb8ae by removing some more ByteString related instances as suggested by @basvandijk in #126.

commit9f9c04d19a2aa1d7b6043337b7e274aa34bc58a5 authorHerbert Valerio Riedel <hvr@gnu.org> dateFri 27 Sep 2013, 15:27 (13 years ago) parente4319c9
3 files changed+1−59
Data/Aeson/Functions.hs−20 Data/Aeson/Generic.hs+1−12 Data/Aeson/Types/Class.hs−27
Data/Aeson/Functions.hs−20
@@ -12,17 +12,9 @@ module Data.Aeson.Functions
1212 , hashMapKey
1313 , mapKeyVal
1414 , mapKey
15− -- * String conversions
16− , decode
17− , strict
18− , lazy
1915 ) where
2016
2117import Data.Hashable (Hashable)
22−import Data.Text (Text)
23−import Data.Text.Encoding (decodeUtf8, encodeUtf8)
24−import qualified Data.ByteString as B
25−import qualified Data.ByteString.Lazy as L
2618import qualified Data.HashMap.Strict as H
2719import qualified Data.Map as M
2820
@@ -48,15 +40,3 @@ mapKeyVal fk kv = H.foldrWithKey (\k v -> H.insert (fk k) (kv v)) H.empty
4840mapKey :: (Eq k2, Hashable k2) => (k1 -> k2) -> H.HashMap k1 v -> H.HashMap k2 v
4941mapKey fk = mapKeyVal fk id
5042{-# INLINE mapKey #-}
51−
52−strict :: L.ByteString -> Text
53−strict = decode . B.concat . L.toChunks
54−{-# INLINE strict #-}
55−
56−lazy :: Text -> L.ByteString
57−lazy = L.fromChunks . (:[]) . encodeUtf8
58−{-# INLINE lazy #-}
59−
60−decode :: B.ByteString -> Text
61−decode = decodeUtf8
62−{-# INLINE decode #-}
Data/Aeson/Generic.hs+1−12
@@ -30,7 +30,7 @@ module Data.Aeson.Generic
3030import Control.Applicative ((<$>))
3131import Control.Arrow (first)
3232import Control.Monad.State.Strict
33−import Data.Aeson.Functions hiding (decode)
33+import Data.Aeson.Functions
3434import Data.Aeson.Types hiding (FromJSON(..), ToJSON(..), fromJSON)
3535import Data.Attoparsec.Number (Number)
3636import Data.Generics
@@ -39,14 +39,11 @@ import Data.Int (Int8, Int16, Int32, Int64)
3939import Data.IntSet (IntSet)
4040import Data.Maybe (fromJust)
4141import Data.Text (Text, pack, unpack)
42−import Data.Text.Encoding (encodeUtf8)
4342import Data.Time.Clock (UTCTime)
4443import Data.Word (Word, Word8, Word16, Word32, Word64)
4544import Data.Aeson.Parser.Internal (decodeWith, json, json')
4645import qualified Data.Aeson.Encode as E
47−import qualified Data.Aeson.Functions as F
4846import qualified Data.Aeson.Types as T
49−import qualified Data.ByteString as B
5047import qualified Data.ByteString.Lazy as L
5148import qualified Data.HashMap.Strict as H
5249import qualified Data.Map as Map
@@ -127,8 +124,6 @@ toJSON = toJSON_generic
127124 | tyrep == typeOf DT.empty = remap id
128125 | tyrep == typeOf LT.empty = remap LT.toStrict
129126 | tyrep == typeOf "" = remap pack
130− | tyrep == typeOf B.empty = remap F.decode
131− | tyrep == typeOf L.empty = remap strict
132127 | otherwise = modError "toJSON" $
133128 "cannot convert map keyed by type " ++ show tyrep
134129 where tyrep = typeOf . head . Map.keys $ m
@@ -138,8 +133,6 @@ toJSON = toJSON_generic
138133 | tyrep == typeOf DT.empty = remap id
139134 | tyrep == typeOf LT.empty = remap LT.toStrict
140135 | tyrep == typeOf "" = remap pack
141− | tyrep == typeOf B.empty = remap F.decode
142− | tyrep == typeOf L.empty = remap strict
143136 | otherwise = modError "toJSON" $
144137 "cannot convert map keyed by type " ++ show tyrep
145138 where tyrep = typeOf . head . H.keys $ m
@@ -235,8 +228,6 @@ parseJSON j = parseJSON_generic j
235228 | tyrep == typeOf DT.empty = process id
236229 | tyrep == typeOf LT.empty = process LT.fromStrict
237230 | tyrep == typeOf "" = process DT.unpack
238− | tyrep == typeOf B.empty = process encodeUtf8
239− | tyrep == typeOf L.empty = process lazy
240231 | otherwise = myFail
241232 where
242233 process f = maybe myFail return . cast =<< parseWith f
@@ -252,8 +243,6 @@ parseJSON j = parseJSON_generic j
252243 | tyrep == typeOf DT.empty = process id
253244 | tyrep == typeOf LT.empty = process LT.fromStrict
254245 | tyrep == typeOf "" = process DT.unpack
255− | tyrep == typeOf B.empty = process encodeUtf8
256− | tyrep == typeOf L.empty = process lazy
257246 | otherwise = myFail
258247 where
259248 process f = maybe myFail return . cast =<< parseWith f
Data/Aeson/Types/Class.hs−27
@@ -61,7 +61,6 @@ import Data.Maybe (fromMaybe)
6161import Data.Monoid (Dual(..), First(..), Last(..), mappend)
6262import Data.Ratio (Ratio)
6363import Data.Text (Text, pack, unpack)
64−import Data.Text.Encoding (encodeUtf8)
6564import Data.Time (UTCTime, ZonedTime(..), TimeZone(..))
6665import Data.Time.Format (FormatTime, formatTime, parseTime)
6766import Data.Traversable (traverse)
@@ -70,8 +69,6 @@ import Data.Vector (Vector)
7069import Data.Word (Word, Word8, Word16, Word32, Word64)
7170import Foreign.Storable (Storable)
7271import System.Locale (defaultTimeLocale, dateTimeFmt)
73−import qualified Data.ByteString as B
74−import qualified Data.ByteString.Lazy as LB
7572import qualified Data.HashMap.Strict as H
7673import qualified Data.HashSet as HashSet
7774import qualified Data.IntMap as IntMap
@@ -568,18 +565,6 @@ instance (ToJSON v) => ToJSON (M.Map String v) where
568565instance (FromJSON v) => FromJSON (M.Map String v) where
569566 parseJSON = fmap (hashMapKey unpack) . parseJSON
570567
571−instance (ToJSON v) => ToJSON (M.Map B.ByteString v) where
572− toJSON = Object . mapHashKeyVal decode toJSON
573−
574−instance (FromJSON v) => FromJSON (M.Map B.ByteString v) where
575− parseJSON = fmap (hashMapKey encodeUtf8) . parseJSON
576−
577−instance (ToJSON v) => ToJSON (M.Map LB.ByteString v) where
578− toJSON = Object . mapHashKeyVal strict toJSON
579−
580−instance (FromJSON v) => FromJSON (M.Map LB.ByteString v) where
581− parseJSON = fmap (hashMapKey lazy) . parseJSON
582−
583568instance (ToJSON v) => ToJSON (H.HashMap Text v) where
584569 toJSON = Object . H.map toJSON
585570 {-# INLINE toJSON #-}
@@ -599,18 +584,6 @@ instance (ToJSON v) => ToJSON (H.HashMap String v) where
599584instance (FromJSON v) => FromJSON (H.HashMap String v) where
600585 parseJSON = fmap (mapKey unpack) . parseJSON
601586
602−instance (ToJSON v) => ToJSON (H.HashMap B.ByteString v) where
603− toJSON = Object . mapKeyVal decode toJSON
604−
605−instance (FromJSON v) => FromJSON (H.HashMap B.ByteString v) where
606− parseJSON = fmap (mapKey encodeUtf8) . parseJSON
607−
608−instance (ToJSON v) => ToJSON (H.HashMap LB.ByteString v) where
609− toJSON = Object . mapKeyVal strict toJSON
610−
611−instance (FromJSON v) => FromJSON (H.HashMap LB.ByteString v) where
612− parseJSON = fmap (mapKey lazy) . parseJSON
613−
614587instance ToJSON Value where
615588 toJSON a = a
616589 {-# INLINE toJSON #-}