@@ -23,10 +23,11 @@ import Data.ByteString (ByteString)
23import Text.Libyaml
23import Text.Libyaml
24import Data.Yaml.Internal
24import Data.Yaml.Internal
25import Data.Text (Text)
25import Data.Text (Text)
26+#if MIN_VERSION_aeson(0, 7, 0)
26import Data.Scientific (Scientific)
27import Data.Scientific (Scientific)
27import Data.Aeson.Types (Value(..))
28import Data.Aeson.Types (Value(..))
28import qualified Data.HashSet as HashSet
30import qualified Data.HashSet as HashSet
29−import qualified Data.Text as T
30import Data.Text.Encoding (encodeUtf8)
31import Data.Text.Encoding (encodeUtf8)
31import System.IO.Unsafe (unsafePerformIO)
32import System.IO.Unsafe (unsafePerformIO)
32import Control.Arrow (second)
33import Control.Arrow (second)
@@ -38,7 +39,7 @@ import qualified Data.Text.Lazy as TL
38import Data.Text.Lazy.Builder (toLazyText)
39import Data.Text.Lazy.Builder (toLazyText)
39import Data.Aeson.Encode (encodeToTextBuilder)
40import Data.Aeson.Encode (encodeToTextBuilder)
41−import qualified Data.ByteString.Char8 as S8
42+import Data.Attoparsec.Number
43import Prelude hiding (null)
44import Prelude hiding (null)
@@ -88,8 +89,13 @@ string s =
88 | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing
89 | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing
90-- Use aeson's implementation which gets rid of annoying decimal points
91-- Use aeson's implementation which gets rid of annoying decimal points
92+#if MIN_VERSION_aeson(0, 7, 0)
91scientific :: Scientific -> YamlBuilder
93scientific :: Scientific -> YamlBuilder
92scientific n = YamlBuilder (EventScalar (TE.encodeUtf8 $ TL.toStrict $ toLazyText $ encodeToTextBuilder (Number n)) IntTag PlainNoTag Nothing :)
94scientific n = YamlBuilder (EventScalar (TE.encodeUtf8 $ TL.toStrict $ toLazyText $ encodeToTextBuilder (Number n)) IntTag PlainNoTag Nothing :)
96+scientific :: Number -> YamlBuilder
97+scientific n = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
94{-# DEPRECATED number "Use scientific" #-}
100{-# DEPRECATED number "Use scientific" #-}
95#if MIN_VERSION_aeson(0,7,0)
101#if MIN_VERSION_aeson(0,7,0)
@@ -97,7 +103,7 @@ number :: Scientific -> YamlBuilder
97number = scientific
103number = scientific
99number :: Number -> YamlBuilder
105number :: Number -> YamlBuilder
100−number n rest = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
106+number n = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
103bool :: Bool -> YamlBuilder
109bool :: Bool -> YamlBuilder