on master help sign in
use Text instead of String
commit6c21d3f07f187e583988dca672caf0901e17ad2c authorDwight Guth <dwight.guth@runtimeverification.com> dateTue 18 Sep 2018, 11:18 (8 years ago) parent299f7d5
1 file changed+18−18
src/Data/Yaml/Builder.hs+18−18
src/Data/Yaml/Builder.hs+18−18
@@ -43,7 +43,7 @@ import qualified Data.ByteString.Char8 as S8
4343import Data.Conduit
4444import qualified Data.HashSet as HashSet
4545import Data.Scientific (Scientific)
46−import Data.Text (Text)
46+import Data.Text (Text, unpack)
4747import Data.Text.Encoding (encodeUtf8)
4848import qualified Data.Text.Encoding as TE
4949import qualified Data.Text.Lazy as TL
@@ -71,9 +71,9 @@ instance ToYaml Text where
7171instance ToYaml Int where
7272 toYaml i = YamlBuilder (EventScalar (S8.pack $ show i) IntTag PlainNoTag Nothing:)
7373
74−namedMapping :: Maybe String -> [(Text, YamlBuilder)] -> YamlBuilder
74+namedMapping :: Maybe Text -> [(Text, YamlBuilder)] -> YamlBuilder
7575namedMapping anchor pairs = YamlBuilder $ \rest ->
76− EventMappingStart NoTag AnyMapping anchor : foldr addPair (EventMappingEnd : rest) pairs
76+ EventMappingStart NoTag AnyMapping (unpack <$> anchor) : foldr addPair (EventMappingEnd : rest) pairs
7777 where
7878 addPair (key, YamlBuilder value) after
7979 = EventScalar (encodeUtf8 key) StrTag PlainNoTag Nothing
@@ -82,34 +82,34 @@ namedMapping anchor pairs = YamlBuilder $ \rest ->
8282mapping :: [(Text, YamlBuilder)] -> YamlBuilder
8383mapping = namedMapping Nothing
8484
85−namedArray :: Maybe String -> [YamlBuilder] -> YamlBuilder
85+namedArray :: Maybe Text -> [YamlBuilder] -> YamlBuilder
8686namedArray anchor bs =
87− YamlBuilder $ (EventSequenceStart NoTag AnySequence anchor:) . flip (foldr go) bs . (EventSequenceEnd:)
87+ YamlBuilder $ (EventSequenceStart NoTag AnySequence (unpack <$> anchor):) . flip (foldr go) bs . (EventSequenceEnd:)
8888 where
8989 go (YamlBuilder b) = b
9090
9191array :: [YamlBuilder] -> YamlBuilder
9292array = namedArray Nothing
9393
94−namedString :: Maybe String -> Text -> YamlBuilder
94+namedString :: Maybe Text -> Text -> YamlBuilder
9595-- Empty strings need special handling to ensure they get quoted. This avoids:
9696-- https://github.com/snoyberg/yaml/issues/24
97−namedString anchor "" = YamlBuilder (EventScalar "" NoTag SingleQuoted anchor :)
97+namedString anchor "" = YamlBuilder (EventScalar "" NoTag SingleQuoted (unpack <$> anchor) :)
9898namedString anchor s =
9999 YamlBuilder (event :)
100100 where
101101 event
102102 -- Make sure that special strings are encoded as strings properly.
103103 -- See: https://github.com/snoyberg/yaml/issues/31
104− | s `HashSet.member` specialStrings || isNumeric s = EventScalar (encodeUtf8 s) NoTag SingleQuoted anchor
105− | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag anchor
104+ | s `HashSet.member` specialStrings || isNumeric s = EventScalar (encodeUtf8 s) NoTag SingleQuoted $ unpack <$> anchor
105+ | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag $ unpack <$> anchor
106106
107107string :: Text -> YamlBuilder
108108string = namedString Nothing
109109
110110-- Use aeson's implementation which gets rid of annoying decimal points
111−namedScientific :: Maybe String -> Scientific -> YamlBuilder
112−namedScientific anchor n = YamlBuilder (EventScalar (TE.encodeUtf8 $ TL.toStrict $ toLazyText $ encodeToTextBuilder (Number n)) IntTag PlainNoTag anchor :)
111+namedScientific :: Maybe Text -> Scientific -> YamlBuilder
112+namedScientific anchor n = YamlBuilder (EventScalar (TE.encodeUtf8 $ TL.toStrict $ toLazyText $ encodeToTextBuilder (Number n)) IntTag PlainNoTag (unpack <$> anchor) :)
113113
114114scientific :: Scientific -> YamlBuilder
115115scientific = namedScientific Nothing
@@ -118,21 +118,21 @@ scientific = namedScientific Nothing
118118number :: Scientific -> YamlBuilder
119119number = scientific
120120
121−namedBool :: Maybe String -> Bool -> YamlBuilder
122−namedBool anchor True = YamlBuilder (EventScalar "true" BoolTag PlainNoTag anchor :)
123−namedBool anchor False = YamlBuilder (EventScalar "false" BoolTag PlainNoTag anchor :)
121+namedBool :: Maybe Text -> Bool -> YamlBuilder
122+namedBool anchor True = YamlBuilder (EventScalar "true" BoolTag PlainNoTag (unpack <$> anchor) :)
123+namedBool anchor False = YamlBuilder (EventScalar "false" BoolTag PlainNoTag (unpack <$> anchor) :)
124124
125125bool :: Bool -> YamlBuilder
126126bool = namedBool Nothing
127127
128−namedNull :: Maybe String -> YamlBuilder
129−namedNull anchor = YamlBuilder (EventScalar "null" NullTag PlainNoTag anchor :)
128+namedNull :: Maybe Text -> YamlBuilder
129+namedNull anchor = YamlBuilder (EventScalar "null" NullTag PlainNoTag (unpack <$> anchor) :)
130130
131131null :: YamlBuilder
132132null = namedNull Nothing
133133
134−alias :: String -> YamlBuilder
135−alias anchor = YamlBuilder (EventAlias anchor :)
134+alias :: Text -> YamlBuilder
135+alias anchor = YamlBuilder (EventAlias (unpack anchor) :)
136136
137137toEvents :: YamlBuilder -> [Event]
138138toEvents (YamlBuilder front) =