on master help sign in
encodeToText and encodeFileToText
commit2e3d569a8fcefd4b168d407b0abfae43cc3dfd88 authorMichael Snoyman <michael@snoyman.com> dateThu 26 Nov 2009, 00:33 (17 years ago) parent8c4d134
1 file changed+19−3
Text/Yaml.hs+19−3
Text/Yaml.hs+19−3
@@ -23,6 +23,7 @@ module Text.Yaml
2323 ,
2424 -- * Converting to/from 'TextObject's
2525 encodeText
26+ , encodeToText
2627 , decodeText
2728 , decodeFromText
2829 , decodeFromTextWrap
@@ -31,6 +32,7 @@ module Text.Yaml
3132 , decodeScalar
3233 -- * Files
3334 , encodeFile
35+ , encodeFileToText
3436 , decodeFile
3537 , decodeFileFromTextWrap
3638#if TEST
@@ -94,6 +96,11 @@ encodeText :: ConvertSuccess B.ByteString a
9496 -> a
9597encodeText = unsafePerformIO . join . encode'
9698
99+encodeToText :: (ConvertSuccess B.ByteString a, ToObject x Text Text)
100+ => x
101+ -> a
102+encodeToText = unsafePerformIO . join . encode' . toTextObject
103+
97104decodeText :: (ConvertSuccess a B.ByteString,
98105 MonadFailure YamlException m)
99106 => a
@@ -129,15 +136,24 @@ decodeScalar :: (ConvertSuccess a B.ByteString,
129136decodeScalar = liftM toScalarObject . unsafePerformIO . decode'
130137
131138-- File API
132−encodeFile :: (ToObject o Text Text, MonadIO m, MonadFailure YamlException m)
139+encodeFile :: (MonadIO m, MonadFailure YamlException m)
133140 => FilePath
134− -> o
141+ -> TextObject
135142 -> m ()
136143encodeFile path o = do
137− content <- liftIO $ encode' $ toTextObject o
144+ content <- liftIO $ encode' o
138145 content' <- content
139146 liftIO $ ltWriteFile path content'
140147
148+encodeFileToText :: (ToObject x Text Text,
149+ MonadIO m,
150+ MonadFailure YamlException m
151+ )
152+ => FilePath
153+ -> x
154+ -> m ()
155+encodeFileToText fp = encodeFile fp . toTextObject
156+
141157ltWriteFile :: FilePath -> Text -> IO ()
142158ltWriteFile fp = BL.writeFile fp . LTE.encodeUtf8
143159