@@ -23,24 +23,18 @@ 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)
27import Data.Scientific (Scientific)
26import Data.Scientific (Scientific)
28import Data.Aeson.Types (Value(..))
27import Data.Aeson.Types (Value(..))
30import qualified Data.HashSet as HashSet
28import qualified Data.HashSet as HashSet
31import Data.Text.Encoding (encodeUtf8)
29import Data.Text.Encoding (encodeUtf8)
32import System.IO.Unsafe (unsafePerformIO)
30import System.IO.Unsafe (unsafePerformIO)
33import Control.Arrow (second)
31import Control.Arrow (second)
34import qualified Data.ByteString.Char8 as S8
32import qualified Data.ByteString.Char8 as S8
35import Control.Monad.Trans.Resource (runResourceT)
33import Control.Monad.Trans.Resource (runResourceT)
36−#if MIN_VERSION_aeson(0, 7, 0)
37import qualified Data.Text.Encoding as TE
34import qualified Data.Text.Encoding as TE
38import qualified Data.Text.Lazy as TL
35import qualified Data.Text.Lazy as TL
39import Data.Text.Lazy.Builder (toLazyText)
36import Data.Text.Lazy.Builder (toLazyText)
40import Data.Aeson.Encode (encodeToTextBuilder)
37import Data.Aeson.Encode (encodeToTextBuilder)
42−import Data.Attoparsec.Number
44import Prelude hiding (null)
38import Prelude hiding (null)
46(.=) :: ToYaml a => Text -> a -> (Text, YamlBuilder)
40(.=) :: ToYaml a => Text -> a -> (Text, YamlBuilder)
@@ -89,22 +83,12 @@ string s =
89 | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing
83 | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing
91-- Use aeson's implementation which gets rid of annoying decimal points
85-- Use aeson's implementation which gets rid of annoying decimal points
92−#if MIN_VERSION_aeson(0, 7, 0)
93scientific :: Scientific -> YamlBuilder
86scientific :: Scientific -> YamlBuilder
94scientific n = YamlBuilder (EventScalar (TE.encodeUtf8 $ TL.toStrict $ toLazyText $ encodeToTextBuilder (Number n)) IntTag PlainNoTag Nothing :)
87scientific 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 :)
100{-# DEPRECATED number "Use scientific" #-}
89{-# DEPRECATED number "Use scientific" #-}
101−#if MIN_VERSION_aeson(0,7,0)
102number :: Scientific -> YamlBuilder
90number :: Scientific -> YamlBuilder
103number = scientific
91number = scientific
105−number :: Number -> YamlBuilder
106−number n = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
109bool :: Bool -> YamlBuilder
93bool :: Bool -> YamlBuilder
110bool True = YamlBuilder (EventScalar "true" BoolTag PlainNoTag Nothing :)
94bool True = YamlBuilder (EventScalar "true" BoolTag PlainNoTag Nothing :)