unison-util-serialization-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

U.Util.Serialization

Synopsis

Documentation

type Get a = forall m. MonadGet m => m a Source #

type Put a = forall m. MonadPut m => a -> m () Source #

data Format a Source #

Constructors

Format 

Fields

getFromFile :: MonadIO m => Get a -> FilePath -> m (Maybe a) Source #

putWithParentDirs :: MonadIO m => Put a -> FilePath -> a -> m () Source #

putVarInt :: (MonadPut m, Integral a, Bits a) => a -> m () Source #

getVarInt :: (MonadGet m, Num b, Bits b) => m b Source #

putText :: MonadPut m => Text -> m () Source #

skipText :: MonadGet m => m () Source #

putShortByteString :: MonadPut m => ShortByteString -> m () Source #

the binary package has a native version of this, which may be more efficient by a constant factor

getShortByteString :: MonadGet m => Int -> m ShortByteString Source #

the binary package has a native version of this, which may be more efficient by a constant factor

putFoldable :: (Foldable f, MonadPut m) => (a -> m ()) -> f a -> m () Source #

getList :: MonadGet m => m a -> m [a] Source #

getVector :: MonadGet m => m a -> m (Vector a) Source #

skipVector :: MonadGet m => m a -> m () Source #

getSequence :: MonadGet m => m a -> m (Seq a) Source #

getSet :: (MonadGet m, Ord a) => m a -> m (Set a) Source #

putMap :: MonadPut m => (a -> m ()) -> (b -> m ()) -> Map a b -> m () Source #

addToExistingMap :: (MonadGet m, Ord a) => m a -> m b -> Map a b -> m (Map a b) Source #

getMap :: (MonadGet m, Ord a) => m a -> m b -> m (Map a b) Source #

getFramed :: MonadGet m => Get a -> m a Source #

putFramed :: MonadPut m => Put a -> a -> m () Source #

putFramedArray :: (MonadPut m, Foldable f) => Put a -> f a -> m () Source #

getFramedArray :: MonadGet m => m a -> m (Vector a) Source #

lookupFramedArray :: MonadGet m => m a -> Int -> m (Maybe a) Source #

Look up a 0-based index in a framed array, O(num array elements), because it reads the start indices for all elements first. This could be skipped if the indices had a fixed size instead of varint

putPair :: MonadPut m => (a -> m ()) -> (b -> m ()) -> (a, b) -> m () Source #

getPair :: MonadGet m => m a -> m b -> m (a, b) Source #

getTuple3 :: MonadGet m => m a -> m b -> m c -> m (a, b, c) Source #