pdf-toolbox-core-0.0.4.1: A collection of tools for processing PDF files.

Safe HaskellNone
LanguageHaskell98

Pdf.Toolbox.Core.IO

Description

Basic IO operations for PDF

Synopsis

Documentation

type IS = InputStream ByteString #

Sequential input stream

data RIS #

Random access Input Stream

fromHandle :: Handle -> IO RIS #

Create RIS from Handle with default chunk size

fromHandle' :: Handle -> Int -> IO RIS #

Create RIS from Handle with the specified chunk size

class Monad m => MonadIO m where #

Monads in which IO computations may be embedded. Any monad built by applying a sequence of monad transformers to the IO monad will be an instance of this class.

Instances should satisfy the following laws, which state that liftIO is a transformer of monads:

Minimal complete definition

liftIO

Methods

liftIO :: IO a -> m a #

Lift a computation from the IO monad.

Instances

MonadIO IO 

Methods

liftIO :: IO a -> IO a #

MonadIO m => MonadIO (MaybeT m) 

Methods

liftIO :: IO a -> MaybeT m a #

MonadIO (Generator r) 

Methods

liftIO :: IO a -> Generator r a #

MonadIO (Consumer c) 

Methods

liftIO :: IO a -> Consumer c a #

MonadIO m => MonadIO (ListT m) 

Methods

liftIO :: IO a -> ListT m a #

MonadIO m => MonadIO (PdfWriter m) # 

Methods

liftIO :: IO a -> PdfWriter m a #

MonadIO m => MonadIO (ExceptT e m) 

Methods

liftIO :: IO a -> ExceptT e m a #

MonadIO m => MonadIO (ExceptRT r m) 

Methods

liftIO :: IO a -> ExceptRT r m a #

(Error e, MonadIO m) => MonadIO (ErrorT e m) 

Methods

liftIO :: IO a -> ErrorT e m a #

MonadIO m => MonadIO (StateT s m) 

Methods

liftIO :: IO a -> StateT s m a #

MonadIO m => MonadIO (StateT s m) 

Methods

liftIO :: IO a -> StateT s m a #

(Monoid w, MonadIO m) => MonadIO (WriterT w m) 

Methods

liftIO :: IO a -> WriterT w m a #

(Monoid w, MonadIO m) => MonadIO (WriterT w m) 

Methods

liftIO :: IO a -> WriterT w m a #

MonadIO m => MonadIO (IdentityT * m) 

Methods

liftIO :: IO a -> IdentityT * m a #

MonadIO m => MonadIO (ReaderT * r m) 

Methods

liftIO :: IO a -> ReaderT * r m a #

(Monoid w, MonadIO m) => MonadIO (RWST r w s m) 

Methods

liftIO :: IO a -> RWST r w s m a #

(Monoid w, MonadIO m) => MonadIO (RWST r w s m) 

Methods

liftIO :: IO a -> RWST r w s m a #

liftIO :: MonadIO m => forall a. IO a -> m a #

Lift a computation from the IO monad.

size :: MonadIO m => RIS -> PdfE m Int64 #

Total number of bytes in RIS

seek :: MonadIO m => RIS -> Int64 -> PdfE m () #

Change input position in RIS

tell :: MonadIO m => RIS -> PdfE m Int64 #

Current input position

parse :: MonadIO m => Parser r -> IS -> PdfE m r #

Parse from IS

inputStream :: MonadIO m => RIS -> PdfE m IS #

Convert random access stream to sequential

takeBytes :: MonadIO m => Int64 -> IS -> PdfE m IS #

dropExactly :: MonadIO m => Int -> IS -> PdfE m () #

Same as readExactly, but ignores the result