@@ -18,6 +18,7 @@ module Data.Object.Yaml
18import Data.ByteString (ByteString)
18import Data.ByteString (ByteString)
19import Data.Object
19import Data.Object
20import Data.Object.Text
20import Data.Object.Text
21+import Data.Object.Scalar
21import Data.Convertible.Text
22import Data.Convertible.Text
22import Data.Attempt
23import Data.Attempt
@@ -53,11 +54,24 @@ data Yaml = Yaml
54instance ConvertSuccess Yaml Event where
55instance ConvertSuccess Yaml Event where
55 convertSuccess (Yaml v t s) = EventScalar v (convertSuccess t) s
56 convertSuccess (Yaml v t s) = EventScalar v (convertSuccess t) s
58+instance ConvertSuccess Yaml [Char] where
59+ convertSuccess = convertSuccess . value
60+instance ConvertSuccess [Char] Yaml where
61+ convertSuccess t = Yaml (convertSuccess t) "" Any
56instance ConvertSuccess Yaml Text where
63instance ConvertSuccess Yaml Text where
57 convertSuccess = convertSuccess . value
64 convertSuccess = convertSuccess . value
58instance ConvertSuccess Text Yaml where
65instance ConvertSuccess Text Yaml where
59 convertSuccess t = Yaml (convertSuccess t) "" Any
66 convertSuccess t = Yaml (convertSuccess t) "" Any
68+-- FIXME the following are incredibly stupid conversions which ignore tag
69+-- and style information.
70+instance ConvertSuccess Yaml Scalar where
71+ convertSuccess = Text . convertSuccess
72+instance ConvertSuccess Scalar Yaml where
73+ convertSuccess s = convertSuccess (convertSuccess s :: Text)
61type YamlObject = Object Yaml Yaml
75type YamlObject = Object Yaml Yaml
63data YamlException =
77data YamlException =
@@ -146,3 +160,8 @@ instance ConvertSuccess (Object Yaml Yaml) (Object Text Text) where
146 convertSuccess = mapKeysValues convertSuccess convertSuccess
160 convertSuccess = mapKeysValues convertSuccess convertSuccess
147instance ConvertSuccess (Object Text Text) (Object Yaml Yaml) where
161instance ConvertSuccess (Object Text Text) (Object Yaml Yaml) where
148 convertSuccess = mapKeysValues convertSuccess convertSuccess
162 convertSuccess = mapKeysValues convertSuccess convertSuccess
164+instance ConvertSuccess (Object Yaml Yaml) (Object String Scalar) where
165+ convertSuccess = mapKeysValues convertSuccess convertSuccess
166+instance ConvertSuccess (Object String Scalar) (Object Yaml Yaml) where
167+ convertSuccess = mapKeysValues convertSuccess convertSuccess