Go back to using Binary String
authorJoachim Breitner <mail@joachim-breitner.de>
Wed, 17 Sep 2014 11:43:31 +0000 (11:43 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Wed, 17 Sep 2014 11:43:31 +0000 (11:43 +0000)
as binary-0.7 does not provide a way to perform this lazily.

src/Data/MyText.hs

index 61b9257..63e1ca4 100644 (file)
@@ -28,8 +28,12 @@ instance IsString Text where
 -- Binary instance compatible with Binary String
 instance Binary Text where
     put = put . unpack
+    get = pack <$> get
     -- The following code exploits that the Binary Char instance uses UTF8 as well
     -- The downside is that it quietly suceeds for broken input
+    -- Unfortunately, with binary-0.7, it is no longer possible to implement
+    -- this nice and lazily, so go via String :-(
+    {-
     get = do
         n <- get :: Get Int
         bs <- lookAhead $ getRemainingLazyByteString
@@ -39,6 +43,7 @@ instance Binary Text where
         let sbs = LBS.toStrict utf8bs
         skip $ BS.length sbs
         return $ Text sbs
+    -}
 
 {- Possible speedup with a version of binary that provides access to the
    internals, as the Char instance is actually UTF8, but the length bit is