binary-shared-0.8.3: Sharing for the binary package

Safe HaskellSafe
LanguageHaskell98

Data.Binary.Shared

Description

Binary serializing with sharing

Synopsis

Documentation

class (Typeable alpha, Ord alpha, Eq alpha, Show alpha) => BinaryShared alpha where #

A class for storing Binary instances with shared nodes. Cycles are not supported, cause put and get is a one path process.

Minimal complete definition

put, get

Methods

put :: alpha -> PutShared #

Encode a value in the Put monad.

putShared :: (alpha -> PutShared) -> alpha -> PutShared #

get :: GetShared alpha #

Decode a value in the Get monad

getShared :: GetShared alpha -> GetShared alpha #

Instances

BinaryShared Bool # 

Methods

put :: Bool -> PutShared #

putShared :: (Bool -> PutShared) -> Bool -> PutShared #

get :: GetShared Bool #

getShared :: GetShared Bool -> GetShared Bool #

BinaryShared Char # 

Methods

put :: Char -> PutShared #

putShared :: (Char -> PutShared) -> Char -> PutShared #

get :: GetShared Char #

getShared :: GetShared Char -> GetShared Char #

BinaryShared Int # 

Methods

put :: Int -> PutShared #

putShared :: (Int -> PutShared) -> Int -> PutShared #

get :: GetShared Int #

getShared :: GetShared Int -> GetShared Int #

BinaryShared Integer # 

Methods

put :: Integer -> PutShared #

putShared :: (Integer -> PutShared) -> Integer -> PutShared #

get :: GetShared Integer #

getShared :: GetShared Integer -> GetShared Integer #

BinaryShared ByteString # 

Methods

put :: ByteString -> PutShared #

putShared :: (ByteString -> PutShared) -> ByteString -> PutShared #

get :: GetShared ByteString #

getShared :: GetShared ByteString -> GetShared ByteString #

BinaryShared a => BinaryShared [a] # 

Methods

put :: [a] -> PutShared #

putShared :: ([a] -> PutShared) -> [a] -> PutShared #

get :: GetShared [a] #

getShared :: GetShared [a] -> GetShared [a] #

BinaryShared a => BinaryShared (Maybe a) # 

Methods

put :: Maybe a -> PutShared #

putShared :: (Maybe a -> PutShared) -> Maybe a -> PutShared #

get :: GetShared (Maybe a) #

getShared :: GetShared (Maybe a) -> GetShared (Maybe a) #

BinaryShared a => BinaryShared (Set a) # 

Methods

put :: Set a -> PutShared #

putShared :: (Set a -> PutShared) -> Set a -> PutShared #

get :: GetShared (Set a) #

getShared :: GetShared (Set a) -> GetShared (Set a) #

(BinaryShared a, BinaryShared b) => BinaryShared (a, b) # 

Methods

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

putShared :: ((a, b) -> PutShared) -> (a, b) -> PutShared #

get :: GetShared (a, b) #

getShared :: GetShared (a, b) -> GetShared (a, b) #

(BinaryShared k, BinaryShared e) => BinaryShared (Map k e) # 

Methods

put :: Map k e -> PutShared #

putShared :: (Map k e -> PutShared) -> Map k e -> PutShared #

get :: GetShared (Map k e) #

getShared :: GetShared (Map k e) -> GetShared (Map k e) #

decodeSer :: BinaryShared alpha => ByteString -> alpha #