flat-0.6: Principled and efficient bit-oriented binary serialization.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Flat.Encoder.Prim

Description

Encoding Primitives

Synopsis

Documentation

eBits16F :: NumBits -> Word16 -> Prim Source #

Encode up to 9 bits

eBitsF :: NumBits -> Word8 -> Prim Source #

Encode up to 8 bits.

eUTF16F :: Text -> Prim Source #

Encode text as UTF16 and encode the result as an array of bytes

eUTF8F :: Text -> Prim Source #

Encode text as UTF8 and encode the result as an array of bytes

eLazyBytesF :: ByteString -> Prim Source #

Encode a Lazy ByteString

eFillerF :: Prim Source #

>>> enc $ eTrueF >=> eFillerF
"10000001"
>>> enc eFillerF
"00000001"

eTrueF :: Prim Source #

>>> enc eTrueF
"1"

eFalseF :: Prim Source #

>>> enc eFalseF
"0"

varWordF :: (Bits t, Integral t) => t -> Prim Source #

updateWord8 :: Word8 -> S -> Prim Source #

>>> enc $ \s-> eWord8F 0 s >>= updateWord8 255 s
"11111111"
>>> enc $ \s0 -> eTrueF s0 >>= \s1 -> eWord8F 255 s1 >>= eWord8F 255 >>= updateWord8 0 s1
"10000000 01111111 1"
>>> enc $ \s0 -> eFalseF s0 >>= \s1 -> eWord8F 0 s1 >>= updateWord8 255 s1
"01111111 1"
>>> enc $ \s0 -> eFalseF s0 >>= \s1 -> eWord8F 0 s1 >>= updateWord8 255 s1 >>= eFalseF
"01111111 10"
>>> enc $ \s0 -> eTrueF s0 >>= \s1 -> eWord8F 255 s1 >>= eTrueF >>= updateWord8 0 s1 >>= eTrueF
"10000000 011"

Since: 0.5

w7l :: (Bits t, Integral t) => t -> [Word8] Source #

Exported for testing only