aeson-compat 0.3.4.0 → 0.3.5.0
raw patch · 3 files changed
+78/−16 lines, 3 filesdep ~aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aeson
API changes (from Hackage documentation)
- Data.Aeson.Compat: AesonException :: String -> AesonException
- Data.Aeson.Compat: newtype AesonException
+ Data.Aeson.Compat: (.!=) :: Parser (Maybe a) -> a -> Parser a
+ Data.Aeson.Compat: (.:) :: FromJSON a => Object -> Text -> Parser a
+ Data.Aeson.Compat: (.=) :: ToJSON v => Text -> v -> kv
+ Data.Aeson.Compat: Array :: ~Array -> Value
+ Data.Aeson.Compat: Bool :: ~Bool -> Value
+ Data.Aeson.Compat: DotNetTime :: UTCTime -> DotNetTime
+ Data.Aeson.Compat: Error :: String -> Result a
+ Data.Aeson.Compat: Null :: Value
+ Data.Aeson.Compat: Number :: ~Scientific -> Value
+ Data.Aeson.Compat: Object :: ~Object -> Value
+ Data.Aeson.Compat: String :: ~Text -> Value
+ Data.Aeson.Compat: Success :: a -> Result a
+ Data.Aeson.Compat: [fromDotNetTime] :: DotNetTime -> UTCTime
+ Data.Aeson.Compat: class FromJSON a
+ Data.Aeson.Compat: class GFromJSON (f :: * -> *)
+ Data.Aeson.Compat: class GToEncoding (f :: * -> *)
+ Data.Aeson.Compat: class GToJSON (f :: * -> *)
+ Data.Aeson.Compat: class KeyValue kv
+ Data.Aeson.Compat: class ToJSON a
+ Data.Aeson.Compat: data Encoding :: *
+ Data.Aeson.Compat: data Parser a :: * -> *
+ Data.Aeson.Compat: data Result a :: * -> *
+ Data.Aeson.Compat: data Series :: *
+ Data.Aeson.Compat: data Value :: *
+ Data.Aeson.Compat: defaultOptions :: Options
+ Data.Aeson.Compat: encode :: ToJSON a => a -> ByteString
+ Data.Aeson.Compat: foldable :: (Foldable t, ToJSON a) => t a -> Encoding
+ Data.Aeson.Compat: fromEncoding :: Encoding -> Builder
+ Data.Aeson.Compat: fromJSON :: FromJSON a => Value -> Result a
+ Data.Aeson.Compat: gParseJSON :: Options -> Value -> Parser (f a)
+ Data.Aeson.Compat: gToEncoding :: Options -> f a -> Encoding
+ Data.Aeson.Compat: gToJSON :: Options -> f a -> Value
+ Data.Aeson.Compat: genericParseJSON :: (Generic a, GFromJSON (Rep a)) => Options -> Value -> Parser a
+ Data.Aeson.Compat: genericToEncoding :: (Generic a, GToEncoding (Rep a)) => Options -> a -> Encoding
+ Data.Aeson.Compat: genericToJSON :: (Generic a, GToJSON (Rep a)) => Options -> a -> Value
+ Data.Aeson.Compat: json :: Parser Value
+ Data.Aeson.Compat: json' :: Parser Value
+ Data.Aeson.Compat: newtype DotNetTime :: *
+ Data.Aeson.Compat: object :: [Pair] -> Value
+ Data.Aeson.Compat: pairs :: Series -> Encoding
+ Data.Aeson.Compat: parseJSON :: Value -> Parser a
+ Data.Aeson.Compat: toEncoding :: a -> Encoding
+ Data.Aeson.Compat: toJSON :: a -> Value
+ Data.Aeson.Compat: type Array = Vector Value
+ Data.Aeson.Compat: type Object = HashMap Text Value
+ Data.Aeson.Compat: value :: Parser Value
+ Data.Aeson.Compat: value' :: Parser Value
+ Data.Aeson.Compat: withArray :: String -> (Array -> Parser a) -> Value -> Parser a
+ Data.Aeson.Compat: withBool :: String -> (Bool -> Parser a) -> Value -> Parser a
+ Data.Aeson.Compat: withNumber :: String -> (Number -> Parser a) -> Value -> Parser a
+ Data.Aeson.Compat: withObject :: String -> (Object -> Parser a) -> Value -> Parser a
+ Data.Aeson.Compat: withScientific :: String -> (Scientific -> Parser a) -> Value -> Parser a
+ Data.Aeson.Compat: withText :: String -> (Text -> Parser a) -> Value -> Parser a
Files
- CHANGELOG.md +5/−0
- aeson-compat.cabal +1/−1
- src/Data/Aeson/Compat.hs +72/−15
CHANGELOG.md view
@@ -1,3 +1,8 @@+# 0.3.5.0++- Use explicit export list. Now we are sure we don't break interface.+- `value`, `value'` and `Parser` are exported from `Data.Aeson.Compat`+ # 0.3.4.0 - Add `NominalDiffTime` instances
aeson-compat.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: aeson-compat-version: 0.3.4.0+version: 0.3.5.0 synopsis: Compatibility layer for aeson description: Compatibility layer for @aeson@ category: Web
src/Data/Aeson/Compat.hs view
@@ -17,21 +17,77 @@ -- * '.:?' works as in @aeson <0.10@ -- * '.:!' works as '.:?' in @aeson ==0.10@ -- * Orphan instances 'FromJSON' 'Day' and 'FromJSON' 'LocalTime' for @aeson <0.10@+-- * 'Encoding' related functionality is not added. It's present only with @aeson >=0.10@ -- module Data.Aeson.Compat (- -- * Generic decoding functions- decode,- decode',- decodeStrict,- decodeStrict',- AesonException(..),- -- * Either decoding functions- eitherDecode, eitherDecode', eitherDecodeStrict, eitherDecodeStrict',- -- * Operators- (.:?), (.:!),- -- * Re-exports- -- | Original 'Data.Aeson..:?' operator is not re-exported- module Data.Aeson,+ -- * Encoding and decoding+ -- ** Direct encoding+ decode,+ decode',+ eitherDecode,+ eitherDecode',+ encode,+ -- ** Variants for strict bytestrings+ decodeStrict,+ decodeStrict',+ eitherDecodeStrict,+ eitherDecodeStrict',+ -- * Core JSON types+ Value(..),+#if MIN_VERSION_aeson(0,10,0)+ Encoding,+ fromEncoding,+#endif+ Array,+ Object,+ -- * Convenience types+ DotNetTime(..),+ -- * Type conversion+ FromJSON(..),+ Result(..),+ fromJSON,+ ToJSON(..),+#if MIN_VERSION_aeson(0,10,0)+ KeyValue(..),+#endif+ -- ** Generic JSON classes and options+ GFromJSON(..),+ GToJSON(..),+#if MIN_VERSION_aeson(0,11,0)+ -- GToEncoding is introduced in 0.11.0.0+ GToEncoding(..),+#endif+ genericToJSON,+#if MIN_VERSION_aeson(0,10,0)+ genericToEncoding,+#endif+ genericParseJSON,+ defaultOptions,++ -- * Inspecting @'Value's@+ withObject,+ withText,+ withArray,+ withNumber,+ withScientific,+ withBool,+ -- * Constructors and accessors+#if MIN_VERSION_aeson(0,10,0)+ Series,+ pairs,+ foldable,+#endif+ (.:),+ (.:?),+ (.:!),+ (.!=),+ object,+ -- * Parsing+ json,+ json',+ value,+ value',+ Parser, ) where import Prelude ()@@ -44,14 +100,15 @@ #endif ) -#if !MIN_VERSION_aeson (0,9,0) import Data.Aeson.Parser (value, value')++#if !MIN_VERSION_aeson (0,9,0) import qualified Data.Attoparsec.ByteString as A import qualified Data.Attoparsec.ByteString.Char8 as A (skipSpace) import qualified Data.Attoparsec.Lazy as L #endif -import Control.Monad.Catch+import Control.Monad.Catch (MonadThrow (..), Exception) import Data.Aeson.Types hiding ((.:?)) import Data.ByteString as B import qualified Data.Scientific as Scientific