RJson 0.3 → 0.3.1
raw patch · 2 files changed
+6/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Text.RJson: enumFromJson :: (Data FromJsonD a, Data TranslateFieldD a) => a -> JsonData -> Either String a
+ Text.RJson: enumToJson :: (Data ToJsonD a, ToJson a, TranslateField a) => a -> JsonData
Files
- RJson.cabal +1/−1
- Text/RJson.hs +5/−0
RJson.cabal view
@@ -1,5 +1,5 @@ Name: RJson-Version: 0.3+Version: 0.3.1 Cabal-Version: >= 1.2 License: BSD3 License-File: LICENSE
Text/RJson.hs view
@@ -18,6 +18,7 @@ arrayAppend, objectExtras, genericToJson,+ enumToJson, JsonData(..), FromJson, FromJsonD,@@ -27,6 +28,7 @@ fromJsonString, fromJsonByteString, genericFromJson,+ enumFromJson, stripInitialUnderscores, toJsonString, Union(..), Union3, Union4, Union5, Union6,@@ -285,6 +287,8 @@ | True = error ("Unable to serialize the primitive type '" ++ typename x ++ "'") +-- | This function can be used as an implementation of 'toJson' for simple enums.+-- It just converts an enum value to a string determined by the name of the constructor. enumToJson :: (Data ToJsonD a, ToJson a, TranslateField a) => a -> JsonData enumToJson x | isAlgType (dataTypeOf toJsonProxy x) = JDString (show (toConstr toJsonProxy x))@@ -518,6 +522,7 @@ _ -> Left "Bad fromJson conversion: Non-algebraic datatype given to 'genericFromJson'" genericFromJson _ _ = Left "Bad fromJson conversion: Expecting JSON object or array" +-- | The counterpart of 'enumToJson'. enumFromJson :: (Data FromJsonD a, Data TranslateFieldD a) => a -> JsonData -> Either String a enumFromJson dummy (JDString s) = case fromConstrM fromJsonProxy Nothing (mkConstr (dataTypeOf fromJsonProxy dummy) s [] Prefix ) of