packages feed

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 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