@@ -3,6 +3,7 @@
33-- file, You can obtain one at http://mozilla.org/MPL/2.0/.
44
55{-# LANGUAGE BangPatterns #-}
6+{-# LANGUAGE CPP #-}
67{-# LANGUAGE OverloadedStrings #-}
78{-# LANGUAGE FlexibleInstances #-}
89
@@ -18,7 +19,6 @@ import Data.ByteString.Conversion.Internal
1819import Data.ByteString.Lazy.Builder
1920import Data.ByteString.Lazy.Builder.Extras hiding (runBuilder)
2021import Data.CaseInsensitive (CI, original)
21−import Data.Double.Conversion.Text
2222import Data.Int
2323import Data.List (intersperse)
2424import Data.Monoid
@@ -32,6 +32,12 @@ import qualified Data.Text as T
3232import qualified Data.Text.Lazy as TL
3333import qualified Data.Text.Lazy.Encoding as TL
3434
35+#ifdef WINDOWS
36+import Blaze.Text.Double
37+#else
38+import Data.Double.Conversion.Text
39+#endif
40+
3541class ToByteString a where
3642 builder :: a -> Builder
3743
@@ -42,8 +48,13 @@ instance ToByteString Text where builder x = byteString $ encodeUtf8 x
4248instance ToByteString TL.Text where builder x = lazyByteString $ TL.encodeUtf8 x
4349instance ToByteString Char where builder x = builder $ T.singleton x
4450instance ToByteString [Char] where builder x = builder $ TL.pack x
51+#ifdef WINDOWS
52+instance ToByteString Float where builder x = double $ float2Double x
53+instance ToByteString Double where builder x = double x
54+#else
4555instance ToByteString Float where builder x = builder $ toShortest $ float2Double x
4656instance ToByteString Double where builder x = builder $ toShortest x
57+#endif
4758
4859instance ToByteString Int where builder x = intDec x
4960instance ToByteString Int8 where builder x = int8Dec x