@@ -81,10 +81,11 @@ module Data.Binary.Bits.Get
84−import Data.Binary.Get as B ( runGet, Get, getByteString )
84+import Data.Binary.Get as B ( runGet, Get, getByteString, getLazyByteString )
85import Data.Binary.Get.Internal as B ( get, put, ensureN )
85import Data.Binary.Get.Internal as B ( get, put, ensureN )
87import Data.ByteString as B
87import Data.ByteString as B
88+import qualified Data.ByteString.Lazy as L
88import Data.ByteString.Unsafe
89import Data.ByteString.Unsafe
90import Data.Bits
91import Data.Bits
@@ -414,6 +415,12 @@ getWord64be n = block (word64be n)
414getByteString :: Int -> BitGet ByteString
415getByteString :: Int -> BitGet ByteString
415getByteString n = block (byteString n)
416getByteString n = block (byteString n)
418+getLazyByteString :: Int -> BitGet L.ByteString
419+getLazyByteString m = B $ \ (S n bs) -> do
421+ lbs <- B.getLazyByteString (fromIntegral m)
422+ return (S B.empty 0, lbs)
417-- | Read a 1 bit 'Bool'.
424-- | Read a 1 bit 'Bool'.
418bool :: Block Bool
425bool :: Block Bool
419bool = Block 1 readBool
426bool = Block 1 readBool