on master help sign in
Renamed fieldNameModifier to the more accurate fieldLabelModifier
commit0ec4f5dd24895cfe8b92b5d081257136f1d4782f authorBas van Dijk <v.dijk.bas@gmail.com> dateTue 23 Apr 2013, 01:36 (13 years ago) parent828321a
3 files changed+19−19
Data/Aeson/TH.hs+8−8 Data/Aeson/Types/Generic.hs+7−7 Data/Aeson/Types/Internal.hs+4−4
Data/Aeson/TH.hs+8−8
@@ -33,7 +33,7 @@ characters of every field name. We also modify constructor names by
3333lower-casing them:
3434
3535@
36−$('deriveJSON' 'defaultOptions'{'fieldNameModifier' = 'drop' 4, 'constructorTagModifier' = map toLower} ''D)
36+$('deriveJSON' 'defaultOptions'{'fieldLabelModifier' = 'drop' 4, 'constructorTagModifier' = map toLower} ''D)
3737@
3838
3939Now we can use the newly created instances.
@@ -317,7 +317,7 @@ encodeArgs opts multiCons (RecC conName ts) = do
317317 [|(.=)|]
318318 (varE arg)
319319
320− toFieldName field = [|T.pack|] `appE` fieldNameExp opts field
320+ toFieldName field = [|T.pack|] `appE` fieldLabelExp opts field
321321
322322 match (conP conName $ map varP args)
323323 ( normalB
@@ -625,7 +625,7 @@ parseRecord opts tName conName ts obj =
625625 `appE` (litE $ stringL $ show tName)
626626 `appE` (litE $ stringL $ constructorTagModifier opts $ nameBase conName)
627627 `appE` (varE obj)
628− `appE` ( [|T.pack|] `appE` fieldNameExp opts field
628+ `appE` ( [|T.pack|] `appE` fieldLabelExp opts field
629629 )
630630 | (field, _, _) <- ts
631631 ]
@@ -858,11 +858,11 @@ conNameExp opts = litE
858858 . nameBase
859859 . getConName
860860
861−-- | Creates a string literal expression from a record field name.
862−fieldNameExp :: Options -- ^ Encoding options
863− -> Name
864− -> Q Exp
865−fieldNameExp opts = litE . stringL . fieldNameModifier opts . nameBase
861+-- | Creates a string literal expression from a record field label.
862+fieldLabelExp :: Options -- ^ Encoding options
863+ -> Name
864+ -> Q Exp
865+fieldLabelExp opts = litE . stringL . fieldLabelModifier opts . nameBase
866866
867867-- | The name of the outermost 'Value' constructor.
868868valueConName :: Value -> String
Data/Aeson/Types/Generic.hs+7−7
@@ -228,7 +228,7 @@ instance (Selector s, ToJSON a) => RecordToPairs (S1 s (K1 i (Maybe a))) where
228228 {-# INLINE recordToPairs #-}
229229
230230fieldToPair :: (Selector s, GToJSON a) => Options -> S1 s a p -> DList Pair
231−fieldToPair opts m1 = pure ( pack $ fieldNameModifier opts $ selName m1
231+fieldToPair opts m1 = pure ( pack $ fieldLabelModifier opts $ selName m1
232232 , gToJSON opts (unM1 m1)
233233 )
234234{-# INLINE fieldToPair #-}
@@ -490,17 +490,17 @@ instance (FromRecord a, FromRecord b) => FromRecord (a :*: b) where
490490 {-# INLINE parseRecord #-}
491491
492492instance (Selector s, GFromJSON a) => FromRecord (S1 s a) where
493− parseRecord opts = maybe (notFound key) (gParseJSON opts)
494− . H.lookup (pack key)
493+ parseRecord opts = maybe (notFound label) (gParseJSON opts)
494+ . H.lookup (pack label)
495495 where
496− key = fieldNameModifier opts $ selName (undefined :: t s a p)
496+ label = fieldLabelModifier opts $ selName (undefined :: t s a p)
497497 {-# INLINE parseRecord #-}
498498
499499instance (Selector s, FromJSON a) => FromRecord (S1 s (K1 i (Maybe a))) where
500− parseRecord opts obj = (M1 . K1) <$> obj .:? pack key
500+ parseRecord opts obj = (M1 . K1) <$> obj .:? pack label
501501 where
502− key = fieldNameModifier opts $
503− selName (undefined :: t s (K1 i (Maybe a)) p)
502+ label = fieldLabelModifier opts $
503+ selName (undefined :: t s (K1 i (Maybe a)) p)
504504 {-# INLINE parseRecord #-}
505505
506506--------------------------------------------------------------------------------
Data/Aeson/Types/Internal.hs+4−4
@@ -251,8 +251,8 @@ modifyFailure f (Parser p) = Parser $ \kf -> p (kf . f)
251251
252252-- | Options that specify how to encode\/decode your datatype to\/from JSON.
253253data Options = Options
254− { fieldNameModifier :: String -> String
255− -- ^ Function applied to field names.
254+ { fieldLabelModifier :: String -> String
255+ -- ^ Function applied to field labels.
256256 -- Handy for removing common record prefixes for example.
257257 , constructorTagModifier :: String -> String
258258 -- ^ Function applied to constructor tags which could be handy
@@ -299,7 +299,7 @@ data SumEncoding =
299299--
300300-- @
301301-- 'Options'
302−-- { 'fieldNameModifier' = id
302+-- { 'fieldLabelModifier' = id
303303-- , 'constructorTagModifier' = id
304304-- , 'nullaryToString' = True
305305-- , 'omitNothingFields' = False
@@ -308,7 +308,7 @@ data SumEncoding =
308308-- @
309309defaultOptions :: Options
310310defaultOptions = Options
311− { fieldNameModifier = id
311+ { fieldLabelModifier = id
312312 , constructorTagModifier = id
313313 , nullaryToString = True
314314 , omitNothingFields = False