@@ -64,6 +64,10 @@ module Data.Binary.Bits.Get
64 , getWord32be
64 , getWord32be
65 , getWord64be
65 , getWord64be
67 -- * Blocks
71 -- * Blocks
69 -- $blocks
73 -- $blocks
@@ -93,6 +97,7 @@ import Data.ByteString.Unsafe
93import Data.Bits
97import Data.Bits
94import Data.Word
98import Data.Word
95import Control.Applicative
99import Control.Applicative
100+import Control.Monad (when)
97import Prelude as P
102import Prelude as P
@@ -392,6 +397,20 @@ ensureBits n = do
392 put B.empty
397 put B.empty
393 return (S (bs`append`bs') o, ())
398 return (S (bs`append`bs') o, ())
400+-- | Skip the given number of bits
401+skipBits :: Int -> BitGet ()
405+ putState $! (incS n s)
407+-- | Skip bits if necessary to align on a byte
408+alignByte :: BitGet ()
395-- | Get 1 bit as a 'Bool'.
414-- | Get 1 bit as a 'Bool'.
396getBool :: BitGet Bool
415getBool :: BitGet Bool
397getBool = block bool
416getBool = block bool