@@ -8,6 +8,7 @@ module Data.Binary.Bits.Put
8 , putWord16be
8 , putWord16be
9 , putWord32be
9 , putWord32be
10 , putWord64be
10 , putWord64be
@@ -84,6 +85,15 @@ putWord64be n w
84 putWord64be (n-32) (w`shiftR`32)
85 putWord64be (n-32) (w`shiftR`32)
85 putWord64be 32 (w .&. 0xffffffff)
86 putWord64be 32 (w .&. 0xffffffff)
88+putByteString :: ByteString -> BitPut ()
92+ then mapM_ (putWord8 8) (unpack bs) -- naive
93+ else joinPut (Put.putByteString bs)
95+ hasOffset = BitPut $ \ s@(S _ _ o) -> PairS (o /= 0) s
87joinPut :: Put -> BitPut ()
97joinPut :: Put -> BitPut ()
88joinPut m = BitPut $ \s0 -> PairS () $
98joinPut m = BitPut $ \s0 -> PairS () $
89 let (S b0 _ _) = flushIncomplete s0
99 let (S b0 _ _) = flushIncomplete s0