bytes 0.15.0.1 → 0.15.1
raw patch · 6 files changed
+128/−26 lines, 6 filesdep +hashabledep +scientificdep +unordered-containersdep ~cerealPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: hashable, scientific, unordered-containers
Dependency ranges changed: cereal
API changes (from Hackage documentation)
- Data.Bytes.Get: instance (MonadGet m, Monoid w) => MonadGet (RWST r w s m)
- Data.Bytes.Get: instance (MonadGet m, Monoid w) => MonadGet (WriterT w m)
- Data.Bytes.Get: instance MonadGet Get
- Data.Bytes.Get: instance MonadGet m => MonadGet (ExceptT e m)
- Data.Bytes.Get: instance MonadGet m => MonadGet (ReaderT e m)
- Data.Bytes.Get: instance MonadGet m => MonadGet (StateT s m)
- Data.Bytes.Put: instance (MonadPut m, Monoid w) => MonadPut (RWST r w s m)
- Data.Bytes.Put: instance (MonadPut m, Monoid w) => MonadPut (WriterT w m)
- Data.Bytes.Put: instance MonadPut PutM
- Data.Bytes.Put: instance MonadPut m => MonadPut (ExceptT e m)
- Data.Bytes.Put: instance MonadPut m => MonadPut (ReaderT e m)
- Data.Bytes.Put: instance MonadPut m => MonadPut (StateT s m)
- Data.Bytes.Serial: instance (Bits n, Integral n, Bits (Unsigned n), Integral (Unsigned n)) => Serial (VarInt n)
- Data.Bytes.Serial: instance (GSerial f, GSerial g) => GSerial (f :*: g)
- Data.Bytes.Serial: instance (GSerial f, GSerial g) => GSerial (f :+: g)
- Data.Bytes.Serial: instance (GSerial1 f, GSerial1 g) => GSerial1 (f :*: g)
- Data.Bytes.Serial: instance (GSerial1 f, GSerial1 g) => GSerial1 (f :+: g)
- Data.Bytes.Serial: instance (Ord k, Serial k) => Serial1 (Map k)
- Data.Bytes.Serial: instance (Serial (f a), Serial (g a)) => Serial (Product f g a)
- Data.Bytes.Serial: instance (Serial a, Integral a) => Serial (Ratio a)
- Data.Bytes.Serial: instance (Serial a, Ord a) => Serial (Set a)
- Data.Bytes.Serial: instance (Serial a, Serial b) => Serial (Either a b)
- Data.Bytes.Serial: instance (Serial a, Serial b) => Serial (a, b)
- Data.Bytes.Serial: instance (Serial a, Serial b) => Serial1 ((,,) a b)
- Data.Bytes.Serial: instance (Serial a, Serial b) => Serial2 ((,,,) a b)
- Data.Bytes.Serial: instance (Serial a, Serial b, Serial c) => Serial (a, b, c)
- Data.Bytes.Serial: instance (Serial a, Serial b, Serial c) => Serial1 ((,,,) a b c)
- Data.Bytes.Serial: instance (Serial a, Serial b, Serial c) => Serial2 ((,,,,) a b c)
- Data.Bytes.Serial: instance (Serial a, Serial b, Serial c, Serial d) => Serial (a, b, c, d)
- Data.Bytes.Serial: instance (Serial a, Serial b, Serial c, Serial d) => Serial1 ((,,,,) a b c d)
- Data.Bytes.Serial: instance (Serial a, Serial b, Serial c, Serial d, Serial e) => Serial (a, b, c, d, e)
- Data.Bytes.Serial: instance (Serial k, Serial v, Ord k) => Serial (Map k v)
- Data.Bytes.Serial: instance (Serial1 f, GSerial1 g) => GSerial1 (f :.: g)
- Data.Bytes.Serial: instance GSerial U1
- Data.Bytes.Serial: instance GSerial V1
- Data.Bytes.Serial: instance GSerial f => GSerial (M1 i c f)
- Data.Bytes.Serial: instance GSerial1 Par1
- Data.Bytes.Serial: instance GSerial1 U1
- Data.Bytes.Serial: instance GSerial1 V1
- Data.Bytes.Serial: instance GSerial1 f => GSerial1 (M1 i c f)
- Data.Bytes.Serial: instance HasResolution a => Serial (Fixed a)
- Data.Bytes.Serial: instance Serial ()
- Data.Bytes.Serial: instance Serial (f a) => Serial (Reverse f a)
- Data.Bytes.Serial: instance Serial AbsoluteTime
- Data.Bytes.Serial: instance Serial All
- Data.Bytes.Serial: instance Serial Any
- Data.Bytes.Serial: instance Serial Bool
- Data.Bytes.Serial: instance Serial ByteString
- Data.Bytes.Serial: instance Serial Char
- Data.Bytes.Serial: instance Serial Day
- Data.Bytes.Serial: instance Serial DiffTime
- Data.Bytes.Serial: instance Serial Double
- Data.Bytes.Serial: instance Serial Float
- Data.Bytes.Serial: instance Serial Int
- Data.Bytes.Serial: instance Serial Int16
- Data.Bytes.Serial: instance Serial Int32
- Data.Bytes.Serial: instance Serial Int64
- Data.Bytes.Serial: instance Serial Int8
- Data.Bytes.Serial: instance Serial IntSet
- Data.Bytes.Serial: instance Serial Integer
- Data.Bytes.Serial: instance Serial LocalTime
- Data.Bytes.Serial: instance Serial NominalDiffTime
- Data.Bytes.Serial: instance Serial Ordering
- Data.Bytes.Serial: instance Serial Text
- Data.Bytes.Serial: instance Serial TimeOfDay
- Data.Bytes.Serial: instance Serial TimeZone
- Data.Bytes.Serial: instance Serial UTCTime
- Data.Bytes.Serial: instance Serial UniversalTime
- Data.Bytes.Serial: instance Serial Version
- Data.Bytes.Serial: instance Serial Void
- Data.Bytes.Serial: instance Serial Word
- Data.Bytes.Serial: instance Serial Word16
- Data.Bytes.Serial: instance Serial Word32
- Data.Bytes.Serial: instance Serial Word64
- Data.Bytes.Serial: instance Serial Word8
- Data.Bytes.Serial: instance Serial ZonedTime
- Data.Bytes.Serial: instance Serial a => GSerial (K1 i a)
- Data.Bytes.Serial: instance Serial a => GSerial1 (K1 i a)
- Data.Bytes.Serial: instance Serial a => Serial (Constant a b)
- Data.Bytes.Serial: instance Serial a => Serial (Down a)
- Data.Bytes.Serial: instance Serial a => Serial (Dual a)
- Data.Bytes.Serial: instance Serial a => Serial (First a)
- Data.Bytes.Serial: instance Serial a => Serial (Identity a)
- Data.Bytes.Serial: instance Serial a => Serial (Last a)
- Data.Bytes.Serial: instance Serial a => Serial (Maybe a)
- Data.Bytes.Serial: instance Serial a => Serial (Product a)
- Data.Bytes.Serial: instance Serial a => Serial (Seq a)
- Data.Bytes.Serial: instance Serial a => Serial (Sum a)
- Data.Bytes.Serial: instance Serial a => Serial (ZipList a)
- Data.Bytes.Serial: instance Serial a => Serial [a]
- Data.Bytes.Serial: instance Serial a => Serial1 ((,) a)
- Data.Bytes.Serial: instance Serial a => Serial1 (Either a)
- Data.Bytes.Serial: instance Serial a => Serial2 ((,,) a)
- Data.Bytes.Serial: instance Serial v => Serial (IntMap v)
- Data.Bytes.Serial: instance Serial1 IntMap
- Data.Bytes.Serial: instance Serial1 Maybe
- Data.Bytes.Serial: instance Serial1 Seq
- Data.Bytes.Serial: instance Serial1 []
- Data.Bytes.Serial: instance Serial1 f => GSerial1 (Rec1 f)
- Data.Bytes.Serial: instance Serial2 (,)
- Data.Bytes.Serial: instance Serial2 Either
- Data.Bytes.Serial: instance SerialEndian Char
- Data.Bytes.Serial: instance SerialEndian Double
- Data.Bytes.Serial: instance SerialEndian Float
- Data.Bytes.Serial: instance SerialEndian Int16
- Data.Bytes.Serial: instance SerialEndian Int32
- Data.Bytes.Serial: instance SerialEndian Int64
- Data.Bytes.Serial: instance SerialEndian Word16
- Data.Bytes.Serial: instance SerialEndian Word32
- Data.Bytes.Serial: instance SerialEndian Word64
- Data.Bytes.Serial: instance SerialEndian a => GSerialEndian (K1 i a)
- Data.Bytes.VarInt: instance Bits n => Bits (VarInt n)
- Data.Bytes.VarInt: instance Bounded n => Bounded (VarInt n)
- Data.Bytes.VarInt: instance Enum n => Enum (VarInt n)
- Data.Bytes.VarInt: instance Eq n => Eq (VarInt n)
- Data.Bytes.VarInt: instance Integral n => Integral (VarInt n)
- Data.Bytes.VarInt: instance Num n => Num (VarInt n)
- Data.Bytes.VarInt: instance Ord n => Ord (VarInt n)
- Data.Bytes.VarInt: instance Real n => Real (VarInt n)
- Data.Bytes.VarInt: instance Show n => Show (VarInt n)
- Data.Bytes.VarInt: unVarInt :: VarInt n -> n
+ Data.Bytes.Get: instance (Data.Bytes.Get.MonadGet m, GHC.Base.Monoid w) => Data.Bytes.Get.MonadGet (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Data.Bytes.Get: instance (Data.Bytes.Get.MonadGet m, GHC.Base.Monoid w) => Data.Bytes.Get.MonadGet (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Data.Bytes.Get: instance (Data.Bytes.Get.MonadGet m, GHC.Base.Monoid w) => Data.Bytes.Get.MonadGet (Control.Monad.Trans.Writer.Lazy.WriterT w m)
+ Data.Bytes.Get: instance (Data.Bytes.Get.MonadGet m, GHC.Base.Monoid w) => Data.Bytes.Get.MonadGet (Control.Monad.Trans.Writer.Strict.WriterT w m)
+ Data.Bytes.Get: instance Data.Bytes.Get.MonadGet Data.Binary.Get.Internal.Get
+ Data.Bytes.Get: instance Data.Bytes.Get.MonadGet Data.Serialize.Get.Get
+ Data.Bytes.Get: instance Data.Bytes.Get.MonadGet m => Data.Bytes.Get.MonadGet (Control.Monad.Trans.Except.ExceptT e m)
+ Data.Bytes.Get: instance Data.Bytes.Get.MonadGet m => Data.Bytes.Get.MonadGet (Control.Monad.Trans.Reader.ReaderT e m)
+ Data.Bytes.Get: instance Data.Bytes.Get.MonadGet m => Data.Bytes.Get.MonadGet (Control.Monad.Trans.State.Lazy.StateT s m)
+ Data.Bytes.Get: instance Data.Bytes.Get.MonadGet m => Data.Bytes.Get.MonadGet (Control.Monad.Trans.State.Strict.StateT s m)
+ Data.Bytes.Put: instance (Data.Bytes.Put.MonadPut m, GHC.Base.Monoid w) => Data.Bytes.Put.MonadPut (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
+ Data.Bytes.Put: instance (Data.Bytes.Put.MonadPut m, GHC.Base.Monoid w) => Data.Bytes.Put.MonadPut (Control.Monad.Trans.RWS.Strict.RWST r w s m)
+ Data.Bytes.Put: instance (Data.Bytes.Put.MonadPut m, GHC.Base.Monoid w) => Data.Bytes.Put.MonadPut (Control.Monad.Trans.Writer.Lazy.WriterT w m)
+ Data.Bytes.Put: instance (Data.Bytes.Put.MonadPut m, GHC.Base.Monoid w) => Data.Bytes.Put.MonadPut (Control.Monad.Trans.Writer.Strict.WriterT w m)
+ Data.Bytes.Put: instance Data.Bytes.Put.MonadPut Data.Binary.Put.PutM
+ Data.Bytes.Put: instance Data.Bytes.Put.MonadPut Data.Serialize.Put.PutM
+ Data.Bytes.Put: instance Data.Bytes.Put.MonadPut m => Data.Bytes.Put.MonadPut (Control.Monad.Trans.Except.ExceptT e m)
+ Data.Bytes.Put: instance Data.Bytes.Put.MonadPut m => Data.Bytes.Put.MonadPut (Control.Monad.Trans.Reader.ReaderT e m)
+ Data.Bytes.Put: instance Data.Bytes.Put.MonadPut m => Data.Bytes.Put.MonadPut (Control.Monad.Trans.State.Lazy.StateT s m)
+ Data.Bytes.Put: instance Data.Bytes.Put.MonadPut m => Data.Bytes.Put.MonadPut (Control.Monad.Trans.State.Strict.StateT s m)
+ Data.Bytes.Serial: instance (Data.Bits.Bits n, GHC.Real.Integral n, Data.Bits.Bits (Data.Bytes.Signed.Unsigned n), GHC.Real.Integral (Data.Bytes.Signed.Unsigned n)) => Data.Bytes.Serial.Serial (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.GSerial f, Data.Bytes.Serial.GSerial g) => Data.Bytes.Serial.GSerial (f GHC.Generics.:*: g)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.GSerial f, Data.Bytes.Serial.GSerial g) => Data.Bytes.Serial.GSerial (f GHC.Generics.:+: g)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.GSerial1 f, Data.Bytes.Serial.GSerial1 g) => Data.Bytes.Serial.GSerial1 (f GHC.Generics.:*: g)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.GSerial1 f, Data.Bytes.Serial.GSerial1 g) => Data.Bytes.Serial.GSerial1 (f GHC.Generics.:+: g)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial (f a), Data.Bytes.Serial.Serial (g a)) => Data.Bytes.Serial.Serial (Data.Functor.Product.Product f g a)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b) => Data.Bytes.Serial.Serial (Data.Either.Either a b)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b) => Data.Bytes.Serial.Serial (a, b)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b) => Data.Bytes.Serial.Serial1 ((,,) a b)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b) => Data.Bytes.Serial.Serial2 ((,,,) a b)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b, Data.Bytes.Serial.Serial c) => Data.Bytes.Serial.Serial (a, b, c)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b, Data.Bytes.Serial.Serial c) => Data.Bytes.Serial.Serial1 ((,,,) a b c)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b, Data.Bytes.Serial.Serial c) => Data.Bytes.Serial.Serial2 ((,,,,) a b c)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b, Data.Bytes.Serial.Serial c, Data.Bytes.Serial.Serial d) => Data.Bytes.Serial.Serial (a, b, c, d)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b, Data.Bytes.Serial.Serial c, Data.Bytes.Serial.Serial d) => Data.Bytes.Serial.Serial1 ((,,,,) a b c d)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, Data.Bytes.Serial.Serial b, Data.Bytes.Serial.Serial c, Data.Bytes.Serial.Serial d, Data.Bytes.Serial.Serial e) => Data.Bytes.Serial.Serial (a, b, c, d, e)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, GHC.Classes.Ord a) => Data.Bytes.Serial.Serial (Data.Set.Base.Set a)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial a, GHC.Real.Integral a) => Data.Bytes.Serial.Serial (GHC.Real.Ratio a)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial k, Data.Bytes.Serial.Serial v, Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Bytes.Serial.Serial (Data.HashMap.Base.HashMap k v)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial k, Data.Bytes.Serial.Serial v, GHC.Classes.Ord k) => Data.Bytes.Serial.Serial (Data.Map.Base.Map k v)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial v, Data.Hashable.Class.Hashable v, GHC.Classes.Eq v) => Data.Bytes.Serial.Serial (Data.HashSet.HashSet v)
+ Data.Bytes.Serial: instance (Data.Bytes.Serial.Serial1 f, Data.Bytes.Serial.GSerial1 g) => Data.Bytes.Serial.GSerial1 (f GHC.Generics.:.: g)
+ Data.Bytes.Serial: instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k, Data.Bytes.Serial.Serial k) => Data.Bytes.Serial.Serial1 (Data.HashMap.Base.HashMap k)
+ Data.Bytes.Serial: instance (GHC.Classes.Ord k, Data.Bytes.Serial.Serial k) => Data.Bytes.Serial.Serial1 (Data.Map.Base.Map k)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial GHC.Generics.U1
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial GHC.Generics.V1
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial f => Data.Bytes.Serial.GSerial (GHC.Generics.M1 i c f)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial1 GHC.Generics.Par1
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial1 GHC.Generics.U1
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial1 GHC.Generics.V1
+ Data.Bytes.Serial: instance Data.Bytes.Serial.GSerial1 f => Data.Bytes.Serial.GSerial1 (GHC.Generics.M1 i c f)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial ()
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial (f a) => Data.Bytes.Serial.Serial (Data.Functor.Reverse.Reverse f a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.ByteString.Internal.ByteString
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.ByteString.Lazy.Internal.ByteString
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.IntSet.Base.IntSet
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Monoid.All
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Monoid.Any
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Scientific.Scientific
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Text.Internal.Lazy.Text
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Text.Internal.Text
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.Calendar.Days.Day
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.Clock.Scale.DiffTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.Clock.Scale.UniversalTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.Clock.TAI.AbsoluteTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.Clock.UTC.NominalDiffTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.Clock.UTC.UTCTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.LocalTime.LocalTime.LocalTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.LocalTime.LocalTime.ZonedTime
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.LocalTime.TimeOfDay.TimeOfDay
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Time.LocalTime.TimeZone.TimeZone
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Version.Version
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial Data.Void.Void
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Int.Int16
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Int.Int32
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Int.Int64
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Int.Int8
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Integer.Type.Integer
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Natural.Natural
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Bool
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Char
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Double
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Float
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Int
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Ordering
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Types.Word
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Word.Word16
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Word.Word32
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Word.Word64
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial GHC.Word.Word8
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.GSerial (GHC.Generics.K1 i a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.GSerial1 (GHC.Generics.K1 i a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Control.Applicative.ZipList a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Functor.Constant.Constant a b)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Functor.Identity.Identity a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Monoid.Dual a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Monoid.First a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Monoid.Last a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Monoid.Product a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Monoid.Sum a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Ord.Down a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Data.Sequence.Seq a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (GHC.Base.Maybe a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial [a]
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial1 ((,) a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial1 (Data.Either.Either a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial2 ((,,) a)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial v => Data.Bytes.Serial.Serial (Data.IntMap.Base.IntMap v)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial1 Data.IntMap.Base.IntMap
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial1 Data.Sequence.Seq
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial1 GHC.Base.Maybe
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial1 []
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial1 f => Data.Bytes.Serial.GSerial1 (GHC.Generics.Rec1 f)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial2 (,)
+ Data.Bytes.Serial: instance Data.Bytes.Serial.Serial2 Data.Either.Either
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Int.Int16
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Int.Int32
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Int.Int64
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Types.Char
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Types.Double
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Types.Float
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Word.Word16
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Word.Word32
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian GHC.Word.Word64
+ Data.Bytes.Serial: instance Data.Bytes.Serial.SerialEndian a => Data.Bytes.Serial.GSerialEndian (GHC.Generics.K1 i a)
+ Data.Bytes.Serial: instance Data.Fixed.HasResolution a => Data.Bytes.Serial.Serial (Data.Fixed.Fixed a)
+ Data.Bytes.VarInt: [unVarInt] :: VarInt n -> n
+ Data.Bytes.VarInt: instance Data.Bits.Bits n => Data.Bits.Bits (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Classes.Eq n => GHC.Classes.Eq (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Classes.Ord n => GHC.Classes.Ord (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Enum.Bounded n => GHC.Enum.Bounded (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Enum.Enum n => GHC.Enum.Enum (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Num.Num n => GHC.Num.Num (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Real.Integral n => GHC.Real.Integral (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Real.Real n => GHC.Real.Real (Data.Bytes.VarInt.VarInt n)
+ Data.Bytes.VarInt: instance GHC.Show.Show n => GHC.Show.Show (Data.Bytes.VarInt.VarInt n)
Files
- .travis.yml +78/−15
- CHANGELOG.markdown +6/−0
- README.markdown +1/−1
- bytes.cabal +7/−4
- src/Data/Bytes/Put.hs +0/−1
- src/Data/Bytes/Serial.hs +36/−5
.travis.yml view
@@ -1,22 +1,86 @@-language: haskell+# This file has been generated -- see https://github.com/hvr/multi-ghc-travis+language: c+sudo: false++cache:+ directories:+ - $HOME/.cabsnap+ - $HOME/.cabal/packages++before_cache:+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar++matrix:+ include:+ - env: CABALVER=1.16 GHCVER=7.4.2+ compiler: ": #GHC 7.4.2"+ addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2], sources: [hvr-ghc]}}+ - env: CABALVER=1.16 GHCVER=7.6.3+ compiler: ": #GHC 7.6.3"+ addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}}+ - env: CABALVER=1.18 GHCVER=7.8.4+ compiler: ": #GHC 7.8.4"+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}+ - env: CABALVER=1.22 GHCVER=7.10.2+ compiler: ": #GHC 7.10.2"+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2], sources: [hvr-ghc]}}+ before_install:- # Uncomment whenever hackage is down.- # - mkdir -p ~/.cabal && cp travis/config ~/.cabal/config && cabal update- # - cabal update- - travis/cabal-apt-install $mode+ - unset CC+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH install:- - export PATH=~/.cabal/bin:$PATH- - cabal configure -flib-Werror $mode- - cabal install packdeps packunused- - cabal build --ghc-option=-ddump-minimal-imports+ - cabal --version+ - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"+ - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];+ then+ zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >+ $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;+ fi+ - travis_retry cabal update -v+ - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config+ - cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt+ - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt +# check whether current requested install-plan matches cached package-db snapshot+ - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;+ then+ echo "cabal build-cache HIT";+ rm -rfv .ghc;+ cp -a $HOME/.cabsnap/ghc $HOME/.ghc;+ cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;+ else+ echo "cabal build-cache MISS";+ rm -rf $HOME/.cabsnap;+ mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;+ cabal install --only-dependencies --enable-tests --enable-benchmarks;+ fi+ +# snapshot package-db on cache miss+ - if [ ! -d $HOME/.cabsnap ];+ then+ echo "snapshotting package-db to build-cache";+ mkdir $HOME/.cabsnap;+ cp -a $HOME/.ghc $HOME/.cabsnap/ghc;+ cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;+ fi++# Here starts the actual work to be performed for the package under test;+# any command which exits with a non-zero exit code causes the build to fail. script:- - $script- - packdeps bytes.cabal- - packunused --ignore-package=transformers-compat- - hlint src --cpp-define HLINT+ - if [ -f configure.ac ]; then autoreconf -i; fi+ - cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging+ - cabal build # this builds all libraries and executables (including tests/benchmarks)+ - cabal test+ - cabal sdist # tests that a source-distribution can be generated +# Check that the resulting source distribution can be built & installed.+# If there are no other `.tar.gz` files in `dist`, this can be even simpler:+# `cabal install --force-reinstalls dist/*-*.tar.gz`+ - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&+ (cd dist && cabal install --force-reinstalls "$SRC_TGZ")+ notifications: irc: channels:@@ -25,5 +89,4 @@ template: - "\x0313bytes\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}" -env:- - mode="--enable-tests" script="cabal test --show-details=always"+# EOF
CHANGELOG.markdown view
@@ -1,3 +1,9 @@+0.15.1+------+* Drop `Trustworthy` claim in `Data.Bytes.Put` as we now can sometimes infer `Safe`.+* Bump `cereal` bound for 0.5.0.0+* Add instance `Serial Natural`+ 0.15.0.1 -------- * Updated github URLs in the .cabal file.
README.markdown view
@@ -1,7 +1,7 @@ bytes ===== -[](http://travis-ci.org/ekmett/bytes)+[](https://hackage.haskell.org/package/bytes) [](http://travis-ci.org/ekmett/bytes) This package provides a simple compatibility shim that lets you work with both `binary` and `cereal` with one chunk of serialization code.
bytes.cabal view
@@ -1,6 +1,6 @@ name: bytes category: Data, Serialization-version: 0.15.0.1+version: 0.15.1 license: BSD3 cabal-version: >= 1.8 license-file: LICENSE@@ -11,7 +11,7 @@ bug-reports: https://github.com/ekmett/bytes/issues copyright: Copyright (C) 2013-2015 Edward A. Kmett build-type: Custom-tested-with: GHC == 7.4.1, GHC == 7.6.1+tested-with: GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2 synopsis: Sharing code for serialization between binary and cereal description: Sharing code for serialization between binary and cereal @@ -39,16 +39,19 @@ library build-depends:- base >= 4.3 && < 5,+ base >= 4.5 && < 5, binary >= 0.5.1 && < 0.8, bytestring >= 0.9 && < 0.11,- cereal >= 0.3.5 && < 0.5,+ cereal >= 0.3.5 && < 0.6, containers >= 0.3 && < 1,+ hashable >= 1.0.1.1 && < 1.4, mtl >= 2.0 && < 2.3, text >= 0.2 && < 1.3, time >= 1.2 && < 1.6, transformers >= 0.2 && < 0.5, transformers-compat >= 0.3 && < 1,+ unordered-containers >= 0.2 && < 0.3,+ scientific >= 0.0 && < 1, void >= 0.6 && < 1 if impl(ghc >= 7.4 && < 7.6)
src/Data/Bytes/Put.hs view
@@ -5,7 +5,6 @@ {-# LANGUAGE TypeOperators #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE Trustworthy #-} -------------------------------------------------------------------- -- | -- Copyright : (c) Edward Kmett 2013-2015
src/Data/Bytes/Serial.hs view
@@ -61,18 +61,19 @@ import Data.Int import Data.Bits import Data.Monoid as Monoid-#if MIN_VERSION_base(4, 6, 0)-import Data.Ord (Down(..))-#endif import Data.Functor.Identity as Functor import Data.Functor.Constant as Functor import Data.Functor.Product as Functor import Data.Functor.Reverse as Functor+import Data.Hashable (Hashable)+import qualified Data.HashMap.Lazy as HMap+import qualified Data.HashSet as HSet import Data.Time import Data.Time.Clock.TAI import qualified Data.IntMap as IMap import qualified Data.IntSet as ISet import qualified Data.Map as Map+import qualified Data.Scientific as Sci import qualified Data.Sequence as Seq import qualified Data.Set as Set import Data.Text as SText@@ -87,9 +88,14 @@ import Foreign.ForeignPtr import Foreign.Ptr import Foreign.Storable+import GHC.Exts (Down(..)) import GHC.Generics import System.IO.Unsafe +#if MIN_VERSION_base(4,8,0)+import Numeric.Natural+#endif+ foreign import ccall floatToWord32 :: Float -> Word32 foreign import ccall word32ToFloat :: Word32 -> Float foreign import ccall doubleToWord64 :: Double -> Word64@@ -324,6 +330,10 @@ serialize = putWord8 . fromIntegral deserialize = liftM fromIntegral getWord8 +instance Serial Sci.Scientific where+ serialize s = serialize (Sci.coefficient s, Sci.base10Exponent s)+ deserialize = uncurry Sci.scientific <$> deserialize+ instance Serial Void where serialize = absurd deserialize = fail "I looked into the void."@@ -348,6 +358,14 @@ serialize = serializeWith serialize deserialize = deserializeWith deserialize +instance (Serial k, Serial v, Hashable k, Eq k) => Serial (HMap.HashMap k v) where+ serialize = serializeWith serialize+ deserialize = deserializeWith deserialize++instance (Serial v, Hashable v, Eq v) => Serial (HSet.HashSet v) where+ serialize = serialize . HSet.toList+ deserialize = HSet.fromList `liftM` deserialize+ putVarInt :: (MonadPut m, Integral a, Bits a) => a -> m () putVarInt n | n < 0x80 = putWord8 $ fromIntegral n@@ -391,7 +409,16 @@ serialize = serialize . VarInt deserialize = unVarInt `liftM` deserialize +#if MIN_VERSION_base(4,8,0) -- |+-- >>> runGetL deserialize (runPutL (serialize (10^10::Natural))) :: Natural+-- 10000000000+instance Serial Natural where+ serialize = serialize . VarInt . toInteger+ deserialize = fromInteger . unVarInt <$> deserialize+#endif++-- | -- >>> (runGetL deserialize $ runPutL $ serialize (1.82::Fixed E2))::Fixed E2 -- 1.82 instance HasResolution a => Serial (Fixed a) where@@ -480,11 +507,9 @@ serialize = serialize . (fromIntegral::Int -> Int8) . fromEnum deserialize = (toEnum . (fromIntegral::Int8 -> Int)) `liftM` deserialize -#if MIN_VERSION_base(4, 6, 0) instance Serial a => Serial (Down a) where serialize (Down a) = serialize a deserialize = Down `liftM` deserialize-#endif instance Serial Version where serialize (Version vb ts) = serialize (fmap VarInt vb, ts)@@ -698,6 +723,12 @@ serializeWith pv = serializeWith (serializeWith2 serialize pv) . Map.toAscList deserializeWith gv = Map.fromList+ `liftM` deserializeWith (deserializeWith2 deserialize gv)++instance (Hashable k, Eq k, Serial k) => Serial1 (HMap.HashMap k) where+ serializeWith pv = serializeWith (serializeWith2 serialize pv)+ . HMap.toList+ deserializeWith gv = HMap.fromList `liftM` deserializeWith (deserializeWith2 deserialize gv) serialize1 :: (MonadPut m, Serial1 f, Serial a) => f a -> m ()