columbia-0.1.1: Enhanced serialization for media that support seeking.

Safe HaskellTrustworthy
LanguageHaskell98

Data.Columbia.SeekableWriter

Documentation

data SeekableWriter m c Source #

Constructors

SeekableWriter 

Fields

Instances

Functor m => Invariant (SeekableWriter m) Source # 

Methods

invmap :: (a -> b) -> (b -> a) -> SeekableWriter m a -> SeekableWriter m b #

hoistWriter :: (forall t. m t -> m2 t) -> SeekableWriter m c -> SeekableWriter m2 c Source #

makeIoWriter :: IORef (Pointer, Pointer) -> Table -> FileLock -> SeekableWriter IO Word8 Source #

makeIoWriterChar :: IORef (Pointer, Pointer) -> Table -> FileLock -> SeekableWriter IO Char Source #

putToken :: Monad m => c -> ReaderT (SeekableWriter m c) m () Source #

local' :: (Monad m, MonadTrans t, MonadReader a (t m)) => (a -> r) -> ReaderT * r m b -> t m b Source #

hoistReaderM :: (Monad m, Monad n) => (forall t. m t -> n t) -> (forall t. n t -> m t) -> ReaderT (SeekableWriter m c) m u -> ReaderT (SeekableWriter n c) n u Source #

type PolyTraversalW ctx m d = Proxy ctx -> (forall a. Data ctx a => a -> ReaderT (SeekableWriter m Word8) m ()) -> d -> ReaderT (SeekableWriter m Word8) m () Source #

hoistPolyTraversalW :: (Monad m, Monad n) => (forall t. m t -> n t) -> (forall t. n t -> m t) -> PolyTraversalW ctx m u -> PolyTraversalW ctx n u Source #

concludeFileWrite :: Integral a => IORef (t, a) -> Table -> IO () Source #