binary-instances 1.0.0.1 → 1.0.1
raw patch · 4 files changed
+56/−22 lines, 4 filesdep ~basedep ~quickcheck-instancesdep ~tastyPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, quickcheck-instances, tasty, time-compat
API changes (from Hackage documentation)
- Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.Compat.CalendarDiffDays
- Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.Compat.DayOfWeek
- Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.LocalTime.Compat.CalendarDiffTime
- Data.Binary.Instances.UnorderedContainers: instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k, Data.Binary.Class.Binary k, Data.Binary.Class.Binary v) => Data.Binary.Class.Binary (Data.HashMap.Base.HashMap k v)
- Data.Binary.Instances.UnorderedContainers: instance (Data.Hashable.Class.Hashable v, GHC.Classes.Eq v, Data.Binary.Class.Binary v) => Data.Binary.Class.Binary (Data.HashSet.Base.HashSet v)
+ Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.CalendarDiffDays.CalendarDiffDays
+ Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.Month.Compat.Month
+ Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.Quarter.Compat.Quarter
+ Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.Quarter.Compat.QuarterOfYear
+ Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.Calendar.Week.DayOfWeek
+ Data.Binary.Instances.Time: instance Data.Binary.Class.Binary Data.Time.LocalTime.Internal.CalendarDiffTime.CalendarDiffTime
+ Data.Binary.Instances.UnorderedContainers: instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k, Data.Binary.Class.Binary k, Data.Binary.Class.Binary v) => Data.Binary.Class.Binary (Data.HashMap.Internal.HashMap k v)
+ Data.Binary.Instances.UnorderedContainers: instance (Data.Hashable.Class.Hashable v, GHC.Classes.Eq v, Data.Binary.Class.Binary v) => Data.Binary.Class.Binary (Data.HashSet.Internal.HashSet v)
Files
- CHANGELOG.md +4/−0
- binary-instances.cabal +11/−11
- src/Data/Binary/Instances/Time.hs +31/−6
- test/Tests.hs +10/−5
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 1.0.1++- Add instances for `time-1.11` types: `Month`, `Quarter`, `QuarterOfYear`+ ## 1 - **Breaking change** rename this package to `binary-instances`.
binary-instances.cabal view
@@ -1,12 +1,12 @@ name: binary-instances-version: 1.0.0.1+version: 1.0.1 synopsis: Orphan instances for binary description: `binary-instances` defines orphan instances for types in some popular packages. category: Web-homepage: https://github.com/phadej/binary-instances#readme-bug-reports: https://github.com/phadej/binary-instances/issues+homepage: https://github.com/haskellari/binary-instances#readme+bug-reports: https://github.com/haskellari/binary-instances/issues author: Oleg Grenrus <oleg.grenrus@iki.fi> maintainer: Oleg Grenrus <oleg.grenrus@iki.fi> license: BSD3@@ -21,20 +21,20 @@ || ==8.2.2 || ==8.4.4 || ==8.6.5- || ==8.8.3- || ==8.10.1+ || ==8.8.4+ || ==8.10.2 extra-source-files: CHANGELOG.md source-repository head type: git- location: https://github.com/phadej/binary-instances+ location: https://github.com/haskellari/binary-instances library default-language: Haskell2010 hs-source-dirs: src build-depends:- aeson >=0.7.0.6 && <1.5+ aeson >=0.7.0.6 && <1.6 , base >=4.6.0.1 && <4.15 , binary >=0.5.1.1 && <0.8.9 , binary-orphans >=1.0.1 && <1.1@@ -44,7 +44,7 @@ , tagged >=0.7.3 && <0.8.7 , text >=1.2.0.6 && <1.3 , text-binary >=0.2.1.1 && <0.3- , time-compat >=1.9.2.2 && <1.10+ , time-compat >=1.9.4 && <1.10 , unordered-containers >=0.2.5.1 && <0.3 , vector >=0.10.12.3 && <0.13 , vector-binary-instances >=0.2.1.0 && <0.3@@ -74,11 +74,11 @@ , binary-instances , case-insensitive , hashable- , QuickCheck >=2.13.1 && <2.14- , quickcheck-instances >=0.3.21 && <0.4+ , QuickCheck >=2.13.1 && <2.15+ , quickcheck-instances >=0.3.25 && <0.4 , scientific , tagged- , tasty >=0.10.1.2 && <1.3+ , tasty >=0.10.1.2 && <1.4 , tasty-quickcheck >=0.8.3.2 && <0.11 , text , time-compat
src/Data/Binary/Instances/Time.hs view
@@ -6,12 +6,14 @@ import Data.Binary.Orphans () import Data.Word (Word8) -import qualified Data.Fixed as Fixed-import qualified Data.Time.Calendar.Compat as Time-import qualified Data.Time.Clock.Compat as Time-import qualified Data.Time.Clock.System.Compat as Time-import qualified Data.Time.Clock.TAI.Compat as Time-import qualified Data.Time.LocalTime.Compat as Time+import qualified Data.Fixed as Fixed+import qualified Data.Time.Calendar.Compat as Time+import qualified Data.Time.Calendar.Month.Compat as Time+import qualified Data.Time.Calendar.Quarter.Compat as Time+import qualified Data.Time.Clock.Compat as Time+import qualified Data.Time.Clock.System.Compat as Time+import qualified Data.Time.Clock.TAI.Compat as Time+import qualified Data.Time.LocalTime.Compat as Time instance Binary Time.Day where get = fmap Time.ModifiedJulianDay get@@ -84,4 +86,27 @@ 4 -> Time.Thursday 5 -> Time.Friday 6 -> Time.Saturday+ _ -> error "panic: get @DayOfWeek"++instance Binary Time.Month where+ put (Time.MkMonth m) = put m+ get = fmap Time.MkMonth get++instance Binary Time.Quarter where+ put (Time.MkQuarter m) = put m+ get = fmap Time.MkQuarter get++instance Binary Time.QuarterOfYear where+ put Time.Q1 = put (1 :: Word8)+ put Time.Q2 = put (2 :: Word8)+ put Time.Q3 = put (3 :: Word8)+ put Time.Q4 = put (4 :: Word8)++ get = do+ i <- get+ return $ case mod (i :: Word8) 7 of+ 1 -> Time.Q1+ 2 -> Time.Q2+ 3 -> Time.Q3+ 4 -> Time.Q4 _ -> error "panic: get @DayOfWeek"
test/Tests.hs view
@@ -21,11 +21,13 @@ import qualified Data.Vector.Unboxed as VU -import qualified Data.Time.Calendar.Compat as Time-import qualified Data.Time.Clock.Compat as Time-import qualified Data.Time.Clock.System.Compat as Time-import qualified Data.Time.Clock.TAI.Compat as Time-import qualified Data.Time.LocalTime.Compat as Time+import qualified Data.Time.Calendar.Compat as Time+import qualified Data.Time.Calendar.Month.Compat as Time+import qualified Data.Time.Calendar.Quarter.Compat as Time+import qualified Data.Time.Clock.Compat as Time+import qualified Data.Time.Clock.System.Compat as Time+import qualified Data.Time.Clock.TAI.Compat as Time+import qualified Data.Time.LocalTime.Compat as Time main :: IO () main = defaultMain tests@@ -48,6 +50,9 @@ , roundtripProperty (undefined :: Time.TimeOfDay) , roundtripProperty (undefined :: Time.TimeZone) , roundtripProperty (undefined :: Time.UTCTime)+ , roundtripProperty (undefined :: Time.QuarterOfYear)+ , roundtripProperty (undefined :: Time.Quarter)+ , roundtripProperty (undefined :: Time.Month) -- case-insensitive & text , roundtripProperty (undefined :: (CI Text)) -- semigroups / monoids