OpenAFP-1.3: IBM AFP document format parser and generator

Portabilitynon-portable (GHC-only)
Stabilityexperimental
Maintaineraudreyt@audreyt.org

OpenAFP.Types.Chunk

Description

This module handles pre-parsed chunks in AFP files.

Synopsis

Documentation

type WriterStateIO v a = (Chunk c, MonadReader v m) => ChunkWriter c m aSource

class (Show c, Typeable c, Buf (BufOf c), Enum (N c), Num (N c)) => Chunk c whereSource

The Chunk class represents non-parsed chunks, constructed from a (ChunkType, Buffer) tuple.

Associated Types

type N c Source

type BufOf c Source

Methods

chunkApply :: N c -> c -> (forall a. Rec a => a -> x) -> xSource

mkChunk :: N c -> BufOf c -> cSource

chunkCon :: (N c, BufOf c) -> cSource

chunkDecon :: c -> (N c, BufOf c)Source

chunkType :: c -> ChunkTypeSource

chunkTypeLookup :: c -> N c -> ChunkTypeSource

packChunk :: c -> PStringLenSource

chunkMapFiltersM_ :: Monad m => c -> [(ChunkType, c -> m [c])] -> m ()Source

chunkMapFiltersM :: Monad m => c -> [(ChunkType, c -> m [c])] -> m [c]Source

chunksMapFiltersM :: Monad m => [c] -> [(ChunkType, c -> m [c])] -> m [c]Source

chunksMapFiltersM_ :: Monad m => [c] -> [(ChunkType, c -> m [c])] -> m ()Source

decodeChunk :: Binary (Record r) => c -> rSource

encodeChunk :: (Binary r, Storable r, Rec r) => r -> cSource

class (Rec r, Chunk (ChunkOf r)) => RecChunk r whereSource

The RecChunk class unifies a Rec (parent) with its contained chunk types (children).

Associated Types

type ChunkOf r Source

Methods

readChunks :: r -> [ChunkOf r]Source

writeChunks :: Monad m => r -> m [ChunkOf r] -> m rSource

class (Rec a, Rec b) => RecData a b whereSource

The RecData class unifies a Rec (parent) with its contained Rec data type (children).

Associated Types

type DataOf a Source

type RecOf b Source

Methods

readData :: (DataOf a ~ b, RecOf b ~ a) => a -> [Record b]Source

writeData :: (DataOf a ~ b, RecOf b ~ a) => a -> [Record b] -> aSource

(~~) :: (Chunk c, Typeable t) => c -> t -> BoolSource

(<~~) :: (Monad m, Chunk c, Typeable t, Rec r) => t -> [c] -> m rSource

(~~>) :: (Monad m, Chunk c, Typeable t, Rec r) => [c] -> t -> m rSource

(==>) :: (Chunk c, Monad m) => [c] -> [(ChunkType, c -> m [c])] -> m [c]Source

(<==) :: (Chunk c, Monad m) => [(ChunkType, c -> m [c])] -> [c] -> m [c]Source

(..>) :: (Chunk c, Monad m) => [c] -> [(ChunkType, c -> m [c])] -> m ()Source

(<..) :: (Chunk c, Monad m) => [(ChunkType, c -> m [c])] -> [c] -> m ()Source

processChunk :: (Monad m, Rec r, Chunk c) => r -> (r -> ChunkWriter c m a) -> c -> m [c]Source

inspectChunk :: (Monad m, Rec a, Chunk c) => a -> (a -> m t) -> c -> m [c]Source

push :: (Chunk c, Monad m, Rec a) => a -> ChunkWriter c m ()Source

data ChunkQueue a Source

Constructors

ChunkQueue [a] 
ChunkItem a 

Instances