autodocodec 0.4.0.0 → 0.4.1.0
raw patch · 5 files changed
+21/−12 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Autodocodec.Aeson.Decode: instance Autodocodec.Class.HasCodec a => Data.Aeson.Types.FromJSON.FromJSON (Autodocodec.DerivingVia.Autodocodec a)
- Autodocodec.Aeson.Encode: instance Autodocodec.Class.HasCodec a => Data.Aeson.Types.ToJSON.ToJSON (Autodocodec.DerivingVia.Autodocodec a)
+ Autodocodec.DerivingVia: instance Autodocodec.Class.HasCodec a => Data.Aeson.Types.FromJSON.FromJSON (Autodocodec.DerivingVia.Autodocodec a)
+ Autodocodec.DerivingVia: instance Autodocodec.Class.HasCodec a => Data.Aeson.Types.ToJSON.ToJSON (Autodocodec.DerivingVia.Autodocodec a)
Files
- CHANGELOG.md +6/−0
- autodocodec.cabal +1/−1
- src/Autodocodec/Aeson/Decode.hs +1/−5
- src/Autodocodec/Aeson/Encode.hs +1/−6
- src/Autodocodec/DerivingVia.hs +12/−0
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## [0.4.1.0] - 2024-08-03++### Changed++* Moved the `ToJSON (Autodocodec a)` and `FromJSON (Autodocodec a)` instances so they are no longer orphans.+ ## [0.4.0.0] - 2024-07-26 This is technically a breaking change but it's unlikely that you'll need to
autodocodec.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: autodocodec-version: 0.4.0.0+version: 0.4.1.0 synopsis: Self-documenting encoder and decoder homepage: https://github.com/NorfairKing/autodocodec#readme bug-reports: https://github.com/NorfairKing/autodocodec/issues
src/Autodocodec/Aeson/Decode.hs view
@@ -2,7 +2,7 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PartialTypeSignatures #-}-{-# OPTIONS_GHC -fno-warn-partial-type-signatures -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-partial-type-signatures #-} module Autodocodec.Aeson.Decode ( -- * Decoding JSON Values@@ -21,7 +21,6 @@ import qualified Autodocodec.Aeson.Compat as Compat import Autodocodec.Class import Autodocodec.Codec-import Autodocodec.DerivingVia import Control.Monad import Data.Aeson as JSON import Data.Aeson.Types as JSON@@ -179,6 +178,3 @@ OptionalKeyWithOmittedDefaultCodec k c defaultValue mDoc -> go value $ OptionalKeyWithDefaultCodec k c defaultValue mDoc PureCodec a -> pure a ApCodec ocf oca -> go (value :: JSON.Object) ocf <*> go (value :: JSON.Object) oca--instance (HasCodec a) => JSON.FromJSON (Autodocodec a) where- parseJSON = fmap Autodocodec <$> parseJSONViaCodec
src/Autodocodec/Aeson/Encode.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE PartialTypeSignatures #-}-{-# OPTIONS_GHC -fno-warn-partial-type-signatures -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-partial-type-signatures #-} module Autodocodec.Aeson.Encode ( -- * Encoding JSON Values@@ -21,7 +21,6 @@ import qualified Autodocodec.Aeson.Compat as Compat import Autodocodec.Class import Autodocodec.Codec-import Autodocodec.DerivingVia import Data.Aeson (toJSON) import qualified Data.Aeson as JSON import qualified Data.Aeson.Encoding as JSON@@ -146,7 +145,3 @@ Right a2 -> go a2 c2 CommentCodec _ c -> go a c ReferenceCodec _ c -> go a c--instance (HasCodec a) => JSON.ToJSON (Autodocodec a) where- toJSON = toJSONViaCodec . unAutodocodec- toEncoding = toEncodingViaCodec . unAutodocodec
src/Autodocodec/DerivingVia.hs view
@@ -1,5 +1,10 @@ module Autodocodec.DerivingVia where +import Autodocodec.Aeson.Decode (parseJSONViaCodec)+import Autodocodec.Aeson.Encode (toEncodingViaCodec, toJSONViaCodec)+import Autodocodec.Class (HasCodec)+import qualified Data.Aeson as JSON+ -- | 'Autodocodec' is a wrapper to provide codec-based deriving strategies. -- -- === Example usage@@ -15,3 +20,10 @@ -- > <$> requiredField "one" "first field" .= viaOne -- > <*> requiredField "two" "second field" .= viaTwo newtype Autodocodec a = Autodocodec {unAutodocodec :: a}++instance (HasCodec a) => JSON.ToJSON (Autodocodec a) where+ toJSON = toJSONViaCodec . unAutodocodec+ toEncoding = toEncodingViaCodec . unAutodocodec++instance (HasCodec a) => JSON.FromJSON (Autodocodec a) where+ parseJSON = fmap Autodocodec <$> parseJSONViaCodec