autodocodec 0.4.1.0 → 0.4.2.0
raw patch · 3 files changed
+18/−1 lines, 3 filesdep +dlistPVP ok
version bump matches the API change (PVP)
Dependencies added: dlist
API changes (from Hackage documentation)
+ Autodocodec.Class: instance Autodocodec.Class.HasCodec a => Autodocodec.Class.HasCodec (Data.DList.DNonEmpty.Internal.DNonEmpty a)
+ Autodocodec.Class: instance Autodocodec.Class.HasCodec a => Autodocodec.Class.HasCodec (Data.DList.Internal.DList a)
Files
- CHANGELOG.md +6/−0
- autodocodec.cabal +2/−1
- src/Autodocodec/Class.hs +10/−0
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## [0.4.2.0] - 2024-08-06++### Added++* `HasCodec` instances for `DList` and `DNonEmpty` from the `dlist` package.+ ## [0.4.1.0] - 2024-08-03 ### Changed
autodocodec.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: autodocodec-version: 0.4.1.0+version: 0.4.2.0 synopsis: Self-documenting encoder and decoder homepage: https://github.com/NorfairKing/autodocodec#readme bug-reports: https://github.com/NorfairKing/autodocodec/issues@@ -42,6 +42,7 @@ , base >=4.7 && <5 , bytestring , containers+ , dlist , hashable , mtl , scientific
src/Autodocodec/Class.hs view
@@ -19,6 +19,10 @@ #if MIN_VERSION_aeson(2,0,0) import Data.Aeson.KeyMap (KeyMap) #endif+import Data.DList (DList)+import qualified Data.DList as DList+import Data.DList.DNonEmpty (DNonEmpty)+import qualified Data.DList.DNonEmpty as DNonEmpty import Data.Functor.Const (Const (Const)) import Data.Functor.Identity import Data.HashMap.Strict (HashMap)@@ -155,8 +159,14 @@ instance (HasCodec a) => HasCodec [a] where codec = listCodecForStringCompatibility +instance (HasCodec a) => HasCodec (DList a) where+ codec = dimapCodec DList.fromList DList.toList (codec :: JSONCodec [a])+ instance (HasCodec a) => HasCodec (NonEmpty a) where codec = nonEmptyCodec codec++instance (HasCodec a) => HasCodec (DNonEmpty a) where+ codec = dimapCodec DNonEmpty.fromNonEmpty DNonEmpty.toNonEmpty (codec :: JSONCodec (NonEmpty a)) instance (Ord a, HasCodec a) => HasCodec (Set a) where codec = dimapCodec S.fromList S.toList codec