From f8569f9384a202de886e12bb3e85b042b526d3cd Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Fri, 28 Feb 2014 18:33:26 +0400 Subject: Fix build failure with bytestring-0.10.2.0 --- src/Data/BEncode/Internal.hs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Data/BEncode/Internal.hs b/src/Data/BEncode/Internal.hs index 4282cbf..e5ba89c 100644 --- a/src/Data/BEncode/Internal.hs +++ b/src/Data/BEncode/Internal.hs @@ -8,6 +8,7 @@ -- This module provides bencode values serialization. Normally, you -- don't need to import this module, use 'Data.BEncode' instead. -- +{-# LANGUAGE MagicHash #-} module Data.BEncode.Internal ( -- * Parsing parser @@ -23,10 +24,10 @@ import Control.Applicative import Data.Attoparsec.ByteString.Char8 (Parser) import qualified Data.Attoparsec.ByteString.Char8 as P import Data.ByteString as B +import Data.ByteString.Internal as B (c2w, w2c) import qualified Data.ByteString.Lazy as Lazy import qualified Data.ByteString.Lazy.Builder as B import qualified Data.ByteString.Lazy.Builder.ASCII as B -import Data.ByteString.Internal as B (c2w, w2c) import Data.Foldable import Data.List as L import Data.Monoid @@ -35,17 +36,23 @@ import Text.PrettyPrint hiding ((<>)) import Data.BEncode.Types import Data.BEncode.BDict as BD +import GHC.Types +import GHC.Integer.GMP.Internals {-------------------------------------------------------------------- -- Serialization --------------------------------------------------------------------} +integerDecimal :: Integer -> B.Builder +integerDecimal (S# i#) = B.intDec (I# i#) +integerDecimal i = B.string7 (show i) -- TODO more efficient + -- | BEncode format encoder according to specification. builder :: BValue -> B.Builder builder = go where go (BInteger i) = B.word8 (c2w 'i') <> - B.integerDec i <> + integerDecimal i <> B.word8 (c2w 'e') go (BString s) = buildString s go (BList l) = B.word8 (c2w 'l') <> -- cgit v1.2.3