Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data BuilderBox where
- MkBuilderBox :: !Word64 -> !Builder -> BuilderBox
- bitBuilderBox :: forall record. BitStringBuilderHoley (Proxy record) BuilderBox => Proxy record -> ToBitStringBuilder (Proxy record) BuilderBox
- wrapBitBuilderBox :: forall record wrapped. BitStringBuilderHoley (Proxy record) wrapped => (BuilderBox -> wrapped) -> Proxy record -> ToBitStringBuilder (Proxy record) wrapped
- bitBuilderBoxHoley :: forall record r. BitStringBuilderHoley (Proxy record) r => Proxy record -> Holey BuilderBox r (ToBitStringBuilder (Proxy record) r)
- newtype BitStringBuilder = BitStringBuilder {}
- runBitStringBuilder :: BitStringBuilder -> Builder
- bitStringBuilder :: (BitStringBuilderState -> BitStringBuilderState) -> BitStringBuilder
- appBitStringBuilder :: BitStringBuilder -> BitStringBuilderState -> BitStringBuilderState
- data BitStringBuilderState where
- BitStringBuilderState :: !Builder -> !BitStringBuilderChunk -> !Word64 -> BitStringBuilderState
- getBitStringBuilderStateBuilder :: BitStringBuilderState -> Builder
- initialBitStringBuilderState :: BitStringBuilderState
- flushBitStringBuilder :: BitStringBuilderState -> BitStringBuilderState
- appendBitString :: BitString -> BitStringBuilder
- appendStrictByteString :: ByteString -> BitStringBuilder
- runBitStringBuilderHoley :: Holey BitStringBuilder Builder a -> a
- class BitStringBuilderHoley a r where
- type ToBitStringBuilder a r
- type family UnsignedDemoteRep i where ...
- printBuilder :: Builder -> String
- bitStringPrinter :: BitStringBuilderHoley a String => a -> ToBitStringBuilder a String
Documentation
data BuilderBox where Source #
A wrapper around a builder derived from a BitStringBuilderState
MkBuilderBox :: !Word64 -> !Builder -> BuilderBox |
bitBuilderBox :: forall record. BitStringBuilderHoley (Proxy record) BuilderBox => Proxy record -> ToBitStringBuilder (Proxy record) BuilderBox Source #
Create a Builder
from a BitRecord
and store it in a BuilderBox
wrapBitBuilderBox :: forall record wrapped. BitStringBuilderHoley (Proxy record) wrapped => (BuilderBox -> wrapped) -> Proxy record -> ToBitStringBuilder (Proxy record) wrapped Source #
Like bitBuilderBox
, but runHoley
the result and accept as an additional
parameter a wrapper function to wrap the final result (the BuilderBox
) and
runHoley
the whole machiner.
bitBuilderBoxHoley :: forall record r. BitStringBuilderHoley (Proxy record) r => Proxy record -> Holey BuilderBox r (ToBitStringBuilder (Proxy record) r) Source #
Create a Builder
from a BitRecord
and store it in a BuilderBox
;
return a Holey
monoid that does that on runHoley
Low-level interface to building BitRecord
s and other things
newtype BitStringBuilder Source #
data BitStringBuilderState where Source #
BitStringBuilderState :: !Builder -> !BitStringBuilderChunk -> !Word64 -> BitStringBuilderState |
flushBitStringBuilder :: BitStringBuilderState -> BitStringBuilderState Source #
Write the partial buffer contents using any number of word8
The unwritten
parts of the bittr buffer are at the top. If the
63 ... (63-off-1)(63-off) ... 0 ^^^^^^^^^^^^^^^^^^^ Relevant bits start to the top!
appendBitString :: BitString -> BitStringBuilder Source #
Write all the bits, in chunks, filling and writing the BitString
in the BitStringBuilderState
as often as necessary.
appendStrictByteString :: ByteString -> BitStringBuilder Source #
Write all the b*y*tes, into the BitStringBuilderState
this allows general
purposes non-byte aligned builders.
runBitStringBuilderHoley :: Holey BitStringBuilder Builder a -> a Source #
BitString
construction from BitRecord
s
class BitStringBuilderHoley a r where Source #
type ToBitStringBuilder a r Source #
bitStringBuilderHoley :: a -> Holey BitStringBuilder r (ToBitStringBuilder a r) Source #
BitRecordField
instances
type family UnsignedDemoteRep i where ... Source #
Labbeled Fields
Bool
Bits
Naturals
Signed
BitRecord
instances
BitRecordMember
AppendedBitRecords
EmptyBitRecord
and '...Pretty'
Tracing/Debug Printing
printBuilder :: Builder -> String Source #
Print a Builder
to a space seperated series of hexa-decimal bytes.
bitStringPrinter :: BitStringBuilderHoley a String => a -> ToBitStringBuilder a String Source #