OpenAFP-1.1: IBM AFP document format parser and generatorSource codeContentsIndex
OpenAFP.Types.Chunk
Portabilitynon-portable (GHC-only)
Stabilityexperimental
Maintaineraudreyt@audreyt.org
Description
This module handles pre-parsed chunks in AFP files.
Synopsis
type NStr = Buffer0
type AStr = NStr
type ChunkWriter c = WriterT (ChunkQueue c)
type WriterStateIO v a = (Chunk c, MonadReader v m) => ChunkWriter c m a
_NStr :: NStr
packAStr :: AStr -> ByteString
fromAStr :: AStr -> String
toAStr :: String -> AStr
packNStr :: NStr -> ByteString
fromNStr :: NStr -> [N1]
toNStr :: [N1] -> NStr
newtype ChunkType = MkChunkType Int
typeInt :: TypeRep -> Int
chunkTypeOf :: Typeable a => a -> ChunkType
class (Show c, Typeable c, Buf (BufOf c), Enum (N c), Num (N c)) => Chunk c where
type N c
type BufOf c
chunkApply :: N c -> c -> (forall a. Rec a => a -> x) -> x
mkChunk :: N c -> BufOf c -> c
chunkCon :: (N c, BufOf c) -> c
chunkDecon :: c -> (N c, BufOf c)
chunkType :: c -> ChunkType
chunkTypeLookup :: c -> N c -> ChunkType
packChunk :: c -> PStringLen
chunkMapFiltersM_ :: Monad m => c -> [(ChunkType, c -> m [c])] -> m ()
chunkMapFiltersM :: Monad m => c -> [(ChunkType, c -> m [c])] -> m [c]
chunksMapFiltersM :: Monad m => [c] -> [(ChunkType, c -> m [c])] -> m [c]
chunksMapFiltersM_ :: Monad m => [c] -> [(ChunkType, c -> m [c])] -> m ()
decodeChunk :: Binary (Record r) => c -> r
encodeChunk :: (Binary r, Storable r, Rec r) => r -> c
class (Rec r, Chunk (ChunkOf r)) => RecChunk r where
type ChunkOf r
readChunks :: r -> [ChunkOf r]
writeChunks :: Monad m => r -> m [ChunkOf r] -> m r
class (Rec a, Rec b, DataOf a ~ b, RecOf b ~ a) => RecData a b where
type DataOf a
type RecOf b
readData :: a -> [Record b]
writeData :: a -> [Record b] -> a
(~~) :: (Chunk c, Typeable t) => c -> t -> Bool
(<~~) :: (Monad m, Chunk c, Typeable t, Rec r) => t -> [c] -> m r
(~~>) :: (Monad m, Chunk c, Typeable t, Rec r) => [c] -> t -> m r
(==>) :: (Chunk c, Monad m) => [c] -> [(ChunkType, c -> m [c])] -> m [c]
(<==) :: (Chunk c, Monad m) => [(ChunkType, c -> m [c])] -> [c] -> m [c]
(..>) :: (Chunk c, Monad m) => [c] -> [(ChunkType, c -> m [c])] -> m ()
(<..) :: (Chunk c, Monad m) => [(ChunkType, c -> m [c])] -> [c] -> m ()
processChunk :: (Monad m, Rec r, Chunk c) => r -> (r -> ChunkWriter c m a) -> c -> m [c]
inspectChunk :: (Monad m, Rec a, Chunk c) => a -> (a -> m t) -> c -> m [c]
push :: (Chunk c, Monad m, Rec a) => a -> ChunkWriter c m ()
filterChunks :: (Monad m, RecChunk r, Chunk c) => r -> [(ChunkType, ChunkOf r -> ChunkWriter c m [ChunkOf r])] -> ChunkWriter c m ()
data ChunkQueue a
= ChunkQueue [a]
| ChunkItem a
Documentation
type NStr = Buffer0Source
type AStr = NStrSource
type ChunkWriter c = WriterT (ChunkQueue c)Source
type WriterStateIO v a = (Chunk c, MonadReader v m) => ChunkWriter c m aSource
_NStr :: NStrSource
packAStr :: AStr -> ByteStringSource
fromAStr :: AStr -> StringSource
toAStr :: String -> AStrSource
packNStr :: NStr -> ByteStringSource
fromNStr :: NStr -> [N1]Source
toNStr :: [N1] -> NStrSource
newtype ChunkType Source
Constructors
MkChunkType Int
show/hide Instances
typeInt :: TypeRep -> IntSource
chunkTypeOf :: Typeable a => a -> ChunkTypeSource
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
show/hide Instances
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
show/hide Instances
class (Rec a, Rec b, DataOf a ~ b, RecOf b ~ a) => 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 :: a -> [Record b]Source
writeData :: a -> [Record b] -> aSource
show/hide Instances
(~~) :: (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
filterChunks :: (Monad m, RecChunk r, Chunk c) => r -> [(ChunkType, ChunkOf r -> ChunkWriter c m [ChunkOf r])] -> ChunkWriter c m ()Source
data ChunkQueue a Source
Constructors
ChunkQueue [a]
ChunkItem a
show/hide Instances
Produced by Haddock version 2.3.0