biohazard-1.0.3: bioinformatics support library

Bio.Iteratee.Builder

Description

Buffer builder to assemble Bgzf blocks. The idea is to serialize stuff (BAM and BCF) into a buffer, then Bgzf chunks from the buffer. We use a large buffer, and we always make sure there is plenty of space in it (to avoid redundant checks).

Synopsis

# Documentation

data BB Source #

We manage a large buffer (multiple megabytes), of which we fill an initial portion. We remeber the size, the used part, and two marks where we later fill in sizes for the length prefixed BAM or BCF records. We move the buffer down when we yield a piece downstream, and when we run out of space, we simply move to a new buffer. Garbage collection should take care of the rest. Unused mark must be set to (maxBound::Int) so it doesn't interfere with flushing.

Constructors

 BB Fieldsbuffer :: !(ForeignPtr Word8) size :: !Int off :: !Int used :: !Int mark :: !Int mark2 :: !Int
Instances
 Source # Instance detailsMethodsshowsPrec :: Int -> BB -> ShowS #show :: BB -> String #showList :: [BB] -> ShowS #

Creates a buffer.

Creates a new buffer, copying the content from an old one, with higher capacity.

Expand a chain of tokens into a buffer, sending finished pieces downstream as soon as possible.

Things we are able to encode. Taking inspiration from binary-serialise-cbor, we define these as a lazy list-like thing and consume it in a interpreter.

Instances
 Source # Instance detailsMethods

data BclArgs Source #

Constructors

 BclArgs BclSpecialType !(Vector Word8) !Int !Int !Int !Int