packstream-bolt-0.1.0.0: PackStream binary serialization format
Safe HaskellNone
LanguageGHC2021

Compat.Binary

Description

Compat layer for serialization

Wraps persist library

Synopsis

Documentation

class Persist t where #

Minimal complete definition

Nothing

Methods

put :: t -> Put () #

Encode a value in the Put monad.

default put :: (Generic t, GPersistPut (Rep t)) => t -> Put () #

get :: Get t #

Decode a value in the Get monad

default get :: (Generic t, GPersistGet (Rep t)) => Get t #

Instances

Instances details
Persist All 
Instance details

Defined in Data.Persist

Methods

put :: All -> Put () #

get :: Get All #

unsafePut :: All -> Put () #

unsafeGet :: Get All #

Persist Any 
Instance details

Defined in Data.Persist

Methods

put :: Any -> Put () #

get :: Get Any #

unsafePut :: Any -> Put () #

unsafeGet :: Get Any #

Persist Int16 
Instance details

Defined in Data.Persist

Methods

put :: Int16 -> Put () #

get :: Get Int16 #

unsafePut :: Int16 -> Put () #

unsafeGet :: Get Int16 #

Persist Int32 
Instance details

Defined in Data.Persist

Methods

put :: Int32 -> Put () #

get :: Get Int32 #

unsafePut :: Int32 -> Put () #

unsafeGet :: Get Int32 #

Persist Int64 
Instance details

Defined in Data.Persist

Methods

put :: Int64 -> Put () #

get :: Get Int64 #

unsafePut :: Int64 -> Put () #

unsafeGet :: Get Int64 #

Persist Int8 
Instance details

Defined in Data.Persist

Methods

put :: Int8 -> Put () #

get :: Get Int8 #

unsafePut :: Int8 -> Put () #

unsafeGet :: Get Int8 #

Persist Word16 
Instance details

Defined in Data.Persist

Methods

put :: Word16 -> Put () #

get :: Get Word16 #

unsafePut :: Word16 -> Put () #

unsafeGet :: Get Word16 #

Persist Word32 
Instance details

Defined in Data.Persist

Methods

put :: Word32 -> Put () #

get :: Get Word32 #

unsafePut :: Word32 -> Put () #

unsafeGet :: Get Word32 #

Persist Word64 
Instance details

Defined in Data.Persist

Methods

put :: Word64 -> Put () #

get :: Get Word64 #

unsafePut :: Word64 -> Put () #

unsafeGet :: Get Word64 #

Persist Word8 
Instance details

Defined in Data.Persist

Methods

put :: Word8 -> Put () #

get :: Get Word8 #

unsafePut :: Word8 -> Put () #

unsafeGet :: Get Word8 #

Persist ByteString 
Instance details

Defined in Data.Persist

Persist ByteString 
Instance details

Defined in Data.Persist

Persist ShortByteString 
Instance details

Defined in Data.Persist

Persist IntSet 
Instance details

Defined in Data.Persist

Methods

put :: IntSet -> Put () #

get :: Get IntSet #

unsafePut :: IntSet -> Put () #

unsafeGet :: Get IntSet #

Persist Ordering 
Instance details

Defined in Data.Persist

Persist PSInteger Source #

This Persist instance encodes/decodes to/from PackStream format

When serializing PSIntegers via get the shortest encoding is used. Moreoever, for non-negative integers the unsigned encoding is always used.

Deserialization via get will only fail if a non-integer PackStream tag is encountered.

Instance details

Defined in Data.PackStream.Integer

Persist Ps Source #

This Persist instance encodes/decodes to/from PackStream format

Instance details

Defined in Data.PackStream.Ps

Methods

put :: Ps -> Put () #

get :: Get Ps #

unsafePut :: Ps -> Put () #

unsafeGet :: Get Ps #

Persist Text 
Instance details

Defined in Data.Persist

Methods

put :: Text -> Put () #

get :: Get Text #

unsafePut :: Text -> Put () #

unsafeGet :: Get Text #

Persist Integer 
Instance details

Defined in Data.Persist

Persist Natural 
Instance details

Defined in Data.Persist

Persist () 
Instance details

Defined in Data.Persist

Methods

put :: () -> Put () #

get :: Get () #

unsafePut :: () -> Put () #

unsafeGet :: Get () #

Persist Bool 
Instance details

Defined in Data.Persist

Methods

put :: Bool -> Put () #

get :: Get Bool #

unsafePut :: Bool -> Put () #

unsafeGet :: Get Bool #

Persist Char 
Instance details

Defined in Data.Persist

Methods

put :: Char -> Put () #

get :: Get Char #

unsafePut :: Char -> Put () #

unsafeGet :: Get Char #

Persist Double 
Instance details

Defined in Data.Persist

Methods

put :: Double -> Put () #

get :: Get Double #

unsafePut :: Double -> Put () #

unsafeGet :: Get Double #

Persist Float 
Instance details

Defined in Data.Persist

Methods

put :: Float -> Put () #

get :: Get Float #

unsafePut :: Float -> Put () #

unsafeGet :: Get Float #

Persist Int 
Instance details

Defined in Data.Persist

Methods

put :: Int -> Put () #

get :: Get Int #

unsafePut :: Int -> Put () #

unsafeGet :: Get Int #

Persist Word 
Instance details

Defined in Data.Persist

Methods

put :: Word -> Put () #

get :: Get Word #

unsafePut :: Word -> Put () #

unsafeGet :: Get Word #

Persist a => Persist (First a) 
Instance details

Defined in Data.Persist

Methods

put :: First a -> Put () #

get :: Get (First a) #

unsafePut :: First a -> Put () #

unsafeGet :: Get (First a) #

Persist a => Persist (Last a) 
Instance details

Defined in Data.Persist

Methods

put :: Last a -> Put () #

get :: Get (Last a) #

unsafePut :: Last a -> Put () #

unsafeGet :: Get (Last a) #

Persist a => Persist (Dual a) 
Instance details

Defined in Data.Persist

Methods

put :: Dual a -> Put () #

get :: Get (Dual a) #

unsafePut :: Dual a -> Put () #

unsafeGet :: Get (Dual a) #

Persist a => Persist (Product a) 
Instance details

Defined in Data.Persist

Methods

put :: Product a -> Put () #

get :: Get (Product a) #

unsafePut :: Product a -> Put () #

unsafeGet :: Get (Product a) #

Persist a => Persist (Sum a) 
Instance details

Defined in Data.Persist

Methods

put :: Sum a -> Put () #

get :: Get (Sum a) #

unsafePut :: Sum a -> Put () #

unsafeGet :: Get (Sum a) #

Persist e => Persist (NonEmpty e) 
Instance details

Defined in Data.Persist

Methods

put :: NonEmpty e -> Put () #

get :: Get (NonEmpty e) #

unsafePut :: NonEmpty e -> Put () #

unsafeGet :: Get (NonEmpty e) #

Persist a => Persist (Ratio a) 
Instance details

Defined in Data.Persist

Methods

put :: Ratio a -> Put () #

get :: Get (Ratio a) #

unsafePut :: Ratio a -> Put () #

unsafeGet :: Get (Ratio a) #

Persist e => Persist (IntMap e) 
Instance details

Defined in Data.Persist

Methods

put :: IntMap e -> Put () #

get :: Get (IntMap e) #

unsafePut :: IntMap e -> Put () #

unsafeGet :: Get (IntMap e) #

Persist e => Persist (Seq e) 
Instance details

Defined in Data.Persist

Methods

put :: Seq e -> Put () #

get :: Get (Seq e) #

unsafePut :: Seq e -> Put () #

unsafeGet :: Get (Seq e) #

(Ord a, Persist a) => Persist (Set a) 
Instance details

Defined in Data.Persist

Methods

put :: Set a -> Put () #

get :: Get (Set a) #

unsafePut :: Set a -> Put () #

unsafeGet :: Get (Set a) #

Persist e => Persist (Tree e) 
Instance details

Defined in Data.Persist

Methods

put :: Tree e -> Put () #

get :: Get (Tree e) #

unsafePut :: Tree e -> Put () #

unsafeGet :: Get (Tree e) #

HasEndianness a => Persist (BigEndian a) 
Instance details

Defined in Data.Persist

Methods

put :: BigEndian a -> Put () #

get :: Get (BigEndian a) #

unsafePut :: BigEndian a -> Put () #

unsafeGet :: Get (BigEndian a) #

HasEndianness a => Persist (LittleEndian a) 
Instance details

Defined in Data.Persist

(SerializeAs a, Persist (SerializeTarget a)) => Persist (ViaSerializeAs a) 
Instance details

Defined in Data.Persist

Persist a => Persist (Maybe a) 
Instance details

Defined in Data.Persist

Methods

put :: Maybe a -> Put () #

get :: Get (Maybe a) #

unsafePut :: Maybe a -> Put () #

unsafeGet :: Get (Maybe a) #

Persist a => Persist [a]

Persist a list in the following format: Word64 (little endian format) element 1 ... element n

Instance details

Defined in Data.Persist

Methods

put :: [a] -> Put () #

get :: Get [a] #

unsafePut :: [a] -> Put () #

unsafeGet :: Get [a] #

(Persist a, Persist b) => Persist (Either a b) 
Instance details

Defined in Data.Persist

Methods

put :: Either a b -> Put () #

get :: Get (Either a b) #

unsafePut :: Either a b -> Put () #

unsafeGet :: Get (Either a b) #

(Ord k, Persist k, Persist e) => Persist (Map k e) 
Instance details

Defined in Data.Persist

Methods

put :: Map k e -> Put () #

get :: Get (Map k e) #

unsafePut :: Map k e -> Put () #

unsafeGet :: Get (Map k e) #

(Persist a, Persist b) => Persist (a, b) 
Instance details

Defined in Data.Persist

Methods

put :: (a, b) -> Put () #

get :: Get (a, b) #

unsafePut :: (a, b) -> Put () #

unsafeGet :: Get (a, b) #

(Persist a, Persist b, Persist c) => Persist (a, b, c) 
Instance details

Defined in Data.Persist

Methods

put :: (a, b, c) -> Put () #

get :: Get (a, b, c) #

unsafePut :: (a, b, c) -> Put () #

unsafeGet :: Get (a, b, c) #

(Persist a, Persist b, Persist c, Persist d) => Persist (a, b, c, d) 
Instance details

Defined in Data.Persist

Methods

put :: (a, b, c, d) -> Put () #

get :: Get (a, b, c, d) #

unsafePut :: (a, b, c, d) -> Put () #

unsafeGet :: Get (a, b, c, d) #

(Persist a, Persist b, Persist c, Persist d, Persist e) => Persist (a, b, c, d, e) 
Instance details

Defined in Data.Persist

Methods

put :: (a, b, c, d, e) -> Put () #

get :: Get (a, b, c, d, e) #

unsafePut :: (a, b, c, d, e) -> Put () #

unsafeGet :: Get (a, b, c, d, e) #

(Persist a, Persist b, Persist c, Persist d, Persist e, Persist f) => Persist (a, b, c, d, e, f) 
Instance details

Defined in Data.Persist

Methods

put :: (a, b, c, d, e, f) -> Put () #

get :: Get (a, b, c, d, e, f) #

unsafePut :: (a, b, c, d, e, f) -> Put () #

unsafeGet :: Get (a, b, c, d, e, f) #

(Persist a, Persist b, Persist c, Persist d, Persist e, Persist f, Persist g) => Persist (a, b, c, d, e, f, g) 
Instance details

Defined in Data.Persist

Methods

put :: (a, b, c, d, e, f, g) -> Put () #

get :: Get (a, b, c, d, e, f, g) #

unsafePut :: (a, b, c, d, e, f, g) -> Put () #

unsafeGet :: Get (a, b, c, d, e, f, g) #

runPut :: Put -> ByteString Source #

Run a Put action and return a strict ByteString.

runPutLazy :: Put -> ByteString Source #

Run a Put action and return a lazy ByteString.

type Put = Put () Source #

The serialization monad (alias for persist's Put ()).

type PutM = Put Source #

The serialization monad parameterized by its result type.

runGet' :: ByteString -> Get a -> Either Text a Source #

Run a Get parser on a strict ByteString.

runGet :: ByteString -> Get a -> Either Text a Source #

Run a Get parser on a lazy ByteString.

data Get a #

Instances

Instances details
MonadFail Get 
Instance details

Defined in Data.Persist.Internal

Methods

fail :: String -> Get a #

Applicative Get 
Instance details

Defined in Data.Persist.Internal

Methods

pure :: a -> Get a #

(<*>) :: Get (a -> b) -> Get a -> Get b #

liftA2 :: (a -> b -> c) -> Get a -> Get b -> Get c #

(*>) :: Get a -> Get b -> Get b #

(<*) :: Get a -> Get b -> Get a #

Functor Get 
Instance details

Defined in Data.Persist.Internal

Methods

fmap :: (a -> b) -> Get a -> Get b #

(<$) :: a -> Get b -> Get a #

Monad Get 
Instance details

Defined in Data.Persist.Internal

Methods

(>>=) :: Get a -> (a -> Get b) -> Get b #

(>>) :: Get a -> Get b -> Get b #

return :: a -> Get a #

getWord64be :: Get Word64 Source #

Deserialize a big-endian Word64.

putWord64be :: Word64 -> Put Source #

Serialize a big-endian Word64.

getWord32be :: Get Word32 Source #

Deserialize a big-endian Word32.

putWord32be :: Word32 -> Put Source #

Serialize a big-endian Word32.

getWord16be :: Get Word16 Source #

Deserialize a big-endian Word16.

putWord16be :: Word16 -> Put Source #

Serialize a big-endian Word16.

getWord8 :: Get Word8 Source #

Deserialize a single byte.

putWord8 :: Word8 -> Put Source #

Serialize a single byte.

getInt64be :: Get Int64 Source #

Deserialize a big-endian signed 64-bit integer.

putInt64be :: Int64 -> Put Source #

Serialize a big-endian signed 64-bit integer.

getInt32be :: Get Int32 Source #

Deserialize a big-endian signed 32-bit integer.

putInt32be :: Int32 -> Put Source #

Serialize a big-endian signed 32-bit integer.

getInt16be :: Get Int16 Source #

Deserialize a big-endian signed 16-bit integer.

putInt16be :: Int16 -> Put Source #

Serialize a big-endian signed 16-bit integer.

getInt8 :: Get Int8 Source #

Deserialize a signed 8-bit integer.

putInt8 :: Int8 -> Put Source #

Serialize a signed 8-bit integer.

getFloat64be :: Get Double Source #

Deserialize a big-endian 64-bit IEEE 754 double.

putFloat64be :: Double -> Put Source #

Serialize a big-endian 64-bit IEEE 754 double.

getByteString :: Int -> Get ByteString Source #

Deserialize exactly n bytes into a strict ByteString.

putByteString :: ByteString -> Put Source #

Serialize a strict ByteString directly into the output.