-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Minimal serialization library with focus on performance -- -- A binary serialization library with focus on performance similar to -- store and cereal @package persist @version 0.1 module Data.Persist class Persist t -- | Encode a value in the Put monad. put :: Persist t => t -> Put () -- | Decode a value in the Get monad get :: Persist t => Get t -- | Encode a value in the Put monad. put :: (Persist t, Generic t, GPersistPut (Rep t)) => t -> Put () -- | Decode a value in the Get monad get :: (Persist t, Generic t, GPersistGet (Rep t)) => Get t type HostEndian = LittleEndian newtype BigEndian a BigEndian :: a -> BigEndian a [unBigEndian] :: BigEndian a -> a newtype LittleEndian a LittleEndian :: a -> LittleEndian a [unLittleEndian] :: LittleEndian a -> a -- | Encode a value using binary serialization to a strict ByteString. encode :: Persist a => a -> ByteString -- | Decode a value from a strict ByteString, reconstructing the original -- structure. decode :: Persist a => ByteString -> Either String a data Get a -- | Run the Get monad applies a get-based parser on the input -- ByteString runGet :: Get a -> ByteString -> Either String a -- | Ensure that n bytes are available. Fails if fewer than -- n bytes are available. ensure :: Int -> Get () -- | Skip ahead n bytes. Fails if fewer than n bytes are -- available. skip :: Int -> Get () -- | Pull n bytes from the input, as a strict ByteString. getBytes :: Int -> Get ByteString -- | An efficient get method for strict ByteStrings. Fails if fewer -- than n bytes are left in the input. This function creates a -- fresh copy of the underlying bytes. getByteString :: Int -> Get ByteString -- | Get the number of remaining unparsed bytes. Useful for checking -- whether all input has been consumed. remaining :: Get Int eof :: Get () getHE :: Persist (HostEndian a) => Get a getLE :: Persist (LittleEndian a) => Get a getBE :: Persist (BigEndian a) => Get a data Put a runPut :: Put a -> ByteString evalPut :: Put a -> (a, ByteString) -- | Ensure that n bytes can be written. grow :: Int -> Put () putByteString :: ByteString -> Put () putHE :: Persist (HostEndian a) => a -> Put () putLE :: Persist (LittleEndian a) => a -> Put () putBE :: Persist (BigEndian a) => a -> Put () instance GHC.Generics.Generic (Data.Persist.LittleEndian a) instance Data.Traversable.Traversable Data.Persist.LittleEndian instance Data.Foldable.Foldable Data.Persist.LittleEndian instance GHC.Base.Functor Data.Persist.LittleEndian instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Persist.LittleEndian a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Persist.LittleEndian a) instance GHC.Show.Show a => GHC.Show.Show (Data.Persist.LittleEndian a) instance GHC.Generics.Generic (Data.Persist.BigEndian a) instance Data.Traversable.Traversable Data.Persist.BigEndian instance Data.Foldable.Foldable Data.Persist.BigEndian instance GHC.Base.Functor Data.Persist.BigEndian instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Persist.BigEndian a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Persist.BigEndian a) instance GHC.Show.Show a => GHC.Show.Show (Data.Persist.BigEndian a) instance Data.Persist.Persist () instance Data.Persist.Persist GHC.Word.Word8 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Word.Word16) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Word.Word16) instance Data.Persist.Persist GHC.Word.Word16 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Word.Word32) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Word.Word32) instance Data.Persist.Persist GHC.Word.Word32 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Word.Word64) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Word.Word64) instance Data.Persist.Persist GHC.Word.Word64 instance Data.Persist.Persist GHC.Int.Int8 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Int.Int16) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Int.Int16) instance Data.Persist.Persist GHC.Int.Int16 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Int.Int32) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Int.Int32) instance Data.Persist.Persist GHC.Int.Int32 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Int.Int64) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Int.Int64) instance Data.Persist.Persist GHC.Int.Int64 instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Types.Double) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Types.Double) instance Data.Persist.Persist GHC.Types.Double instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Types.Float) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Types.Float) instance Data.Persist.Persist GHC.Types.Float instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Types.Word) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Types.Word) instance Data.Persist.Persist GHC.Types.Word instance Data.Persist.Persist (Data.Persist.LittleEndian GHC.Types.Int) instance Data.Persist.Persist (Data.Persist.BigEndian GHC.Types.Int) instance Data.Persist.Persist GHC.Types.Int instance Data.Persist.Persist GHC.Integer.Type.Integer instance Data.Persist.Persist a => Data.Persist.Persist (GHC.Real.Ratio a) instance Data.Persist.Persist GHC.Natural.Natural instance Data.Persist.Persist GHC.Types.Char instance Data.Persist.Persist Data.Text.Internal.Text instance Data.Persist.Persist GHC.Types.Bool instance Data.Persist.Persist GHC.Types.Ordering instance Data.Persist.Persist a => Data.Persist.Persist (GHC.Base.Maybe a) instance Data.Persist.Persist e => Data.Persist.Persist (Data.Tree.Tree e) instance (Data.Persist.Persist a, Data.Persist.Persist b) => Data.Persist.Persist (Data.Either.Either a b) instance (Data.Persist.Persist a, Data.Persist.Persist b) => Data.Persist.Persist (a, b) instance (Data.Persist.Persist a, Data.Persist.Persist b, Data.Persist.Persist c) => Data.Persist.Persist (a, b, c) instance (Data.Persist.Persist a, Data.Persist.Persist b, Data.Persist.Persist c, Data.Persist.Persist d) => Data.Persist.Persist (a, b, c, d) instance (Data.Persist.Persist a, Data.Persist.Persist b, Data.Persist.Persist c, Data.Persist.Persist d, Data.Persist.Persist e) => Data.Persist.Persist (a, b, c, d, e) instance (Data.Persist.Persist a, Data.Persist.Persist b, Data.Persist.Persist c, Data.Persist.Persist d, Data.Persist.Persist e, Data.Persist.Persist f) => Data.Persist.Persist (a, b, c, d, e, f) instance (Data.Persist.Persist a, Data.Persist.Persist b, Data.Persist.Persist c, Data.Persist.Persist d, Data.Persist.Persist e, Data.Persist.Persist f, Data.Persist.Persist g) => Data.Persist.Persist (a, b, c, d, e, f, g) instance Data.Persist.Persist a => Data.Persist.Persist (Data.Semigroup.Internal.Dual a) instance Data.Persist.Persist Data.Semigroup.Internal.All instance Data.Persist.Persist Data.Semigroup.Internal.Any instance Data.Persist.Persist a => Data.Persist.Persist (Data.Semigroup.Internal.Sum a) instance Data.Persist.Persist a => Data.Persist.Persist (Data.Semigroup.Internal.Product a) instance Data.Persist.Persist a => Data.Persist.Persist (Data.Monoid.First a) instance Data.Persist.Persist a => Data.Persist.Persist (Data.Monoid.Last a) instance Data.Persist.Persist a => Data.Persist.Persist [a] instance Data.Persist.Persist Data.ByteString.Internal.ByteString instance Data.Persist.Persist Data.ByteString.Lazy.Internal.ByteString instance Data.Persist.Persist Data.ByteString.Short.Internal.ShortByteString instance (GHC.Classes.Ord a, Data.Persist.Persist a) => Data.Persist.Persist (Data.Set.Internal.Set a) instance (GHC.Classes.Ord k, Data.Persist.Persist k, Data.Persist.Persist e) => Data.Persist.Persist (Data.Map.Internal.Map k e) instance Data.Persist.Persist Data.IntSet.Internal.IntSet instance Data.Persist.Persist e => Data.Persist.Persist (GHC.Base.NonEmpty e) instance Data.Persist.Persist e => Data.Persist.Persist (Data.IntMap.Internal.IntMap e) instance Data.Persist.Persist e => Data.Persist.Persist (Data.Sequence.Internal.Seq e) instance Data.Persist.Persist a => Data.Persist.GPersistPut (GHC.Generics.K1 i a) instance Data.Persist.Persist a => Data.Persist.GPersistGet (GHC.Generics.K1 i a) instance (Data.Persist.SumArity (a GHC.Generics.:+: b) GHC.TypeNats.<= 255, Data.Persist.GPersistGetSum 0 (a GHC.Generics.:+: b)) => Data.Persist.GPersistGet (a GHC.Generics.:+: b) instance (Data.Persist.GPersistPut a, GHC.TypeNats.KnownNat n) => Data.Persist.GPersistPutSum n (GHC.Generics.C1 c a) instance Data.Persist.GPersistPut f => Data.Persist.GPersistPut (GHC.Generics.M1 i c f) instance Data.Persist.GPersistPut GHC.Generics.U1 instance Data.Persist.GPersistPut GHC.Generics.V1 instance (Data.Persist.GPersistPut a, Data.Persist.GPersistPut b) => Data.Persist.GPersistPut (a GHC.Generics.:*: b) instance (Data.Persist.SumArity (a GHC.Generics.:+: b) GHC.TypeNats.<= 255, Data.Persist.GPersistPutSum 0 (a GHC.Generics.:+: b)) => Data.Persist.GPersistPut (a GHC.Generics.:+: b) instance (Data.Persist.GPersistPutSum n a, Data.Persist.GPersistPutSum (n GHC.TypeNats.+ Data.Persist.SumArity a) b, GHC.TypeNats.KnownNat n) => Data.Persist.GPersistPutSum n (a GHC.Generics.:+: b) instance GHC.Base.Functor Data.Persist.Put instance GHC.Base.Applicative Data.Persist.Put instance GHC.Base.Monad Data.Persist.Put instance Data.Persist.GPersistGet f => Data.Persist.GPersistGet (GHC.Generics.M1 i c f) instance Data.Persist.GPersistGet GHC.Generics.U1 instance Data.Persist.GPersistGet GHC.Generics.V1 instance (Data.Persist.GPersistGet a, Data.Persist.GPersistGet b) => Data.Persist.GPersistGet (a GHC.Generics.:*: b) instance (Data.Persist.GPersistGet a, GHC.TypeNats.KnownNat n) => Data.Persist.GPersistGetSum n (GHC.Generics.C1 c a) instance (Data.Persist.GPersistGetSum n a, Data.Persist.GPersistGetSum (n GHC.TypeNats.+ Data.Persist.SumArity a) b, GHC.TypeNats.KnownNat n) => Data.Persist.GPersistGetSum n (a GHC.Generics.:+: b) instance GHC.Base.Functor Data.Persist.Get instance GHC.Base.Applicative Data.Persist.Get instance GHC.Base.Monad Data.Persist.Get instance Control.Monad.Fail.MonadFail Data.Persist.Get