@@ -23,6 +23,7 @@ module Text.Yaml
24 -- * Converting to/from 'TextObject's
24 -- * Converting to/from 'TextObject's
25 encodeText
25 encodeText
26 , decodeText
27 , decodeText
27 , decodeFromText
28 , decodeFromText
28 , decodeFromTextWrap
29 , decodeFromTextWrap
@@ -31,6 +32,7 @@ module Text.Yaml
31 , decodeScalar
32 , decodeScalar
32 -- * Files
33 -- * Files
33 , encodeFile
34 , encodeFile
34 , decodeFile
36 , decodeFile
35 , decodeFileFromTextWrap
37 , decodeFileFromTextWrap
@@ -94,6 +96,11 @@ encodeText :: ConvertSuccess B.ByteString a
95encodeText = unsafePerformIO . join . encode'
97encodeText = unsafePerformIO . join . encode'
99+encodeToText :: (ConvertSuccess B.ByteString a, ToObject x Text Text)
102+encodeToText = unsafePerformIO . join . encode' . toTextObject
97decodeText :: (ConvertSuccess a B.ByteString,
104decodeText :: (ConvertSuccess a B.ByteString,
98 MonadFailure YamlException m)
105 MonadFailure YamlException m)
@@ -129,15 +136,24 @@ decodeScalar :: (ConvertSuccess a B.ByteString,
129decodeScalar = liftM toScalarObject . unsafePerformIO . decode'
136decodeScalar = liftM toScalarObject . unsafePerformIO . decode'
131-- File API
138-- File API
132−encodeFile :: (ToObject o Text Text, MonadIO m, MonadFailure YamlException m)
139+encodeFile :: (MonadIO m, MonadFailure YamlException m)
133 => FilePath
140 => FilePath
134− -> o
141+ -> TextObject
136encodeFile path o = do
143encodeFile path o = do
137− content <- liftIO $ encode' $ toTextObject o
144+ content <- liftIO $ encode' o
138 content' <- content
145 content' <- content
139 liftIO $ ltWriteFile path content'
146 liftIO $ ltWriteFile path content'
148+encodeFileToText :: (ToObject x Text Text,
150+ MonadFailure YamlException m
155+encodeFileToText fp = encodeFile fp . toTextObject
141ltWriteFile :: FilePath -> Text -> IO ()
157ltWriteFile :: FilePath -> Text -> IO ()
142ltWriteFile fp = BL.writeFile fp . LTE.encodeUtf8
158ltWriteFile fp = BL.writeFile fp . LTE.encodeUtf8