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