instance IsYamlObject Integer

Ilya Portnov [2010-04-25 11:26:34]
instance IsYamlObject Integer
Filename
Network/YAML/Base.hs
Network/YAML/Instances.hs
diff --git a/Network/YAML/Base.hs b/Network/YAML/Base.hs
index 2a3c416..c429dad 100644
--- a/Network/YAML/Base.hs
+++ b/Network/YAML/Base.hs
@@ -60,6 +60,10 @@ instance IsYamlScalar Int where
   fromYamlScalar (YamlScalar v _ _) = read $ BS.unpack v
   toYamlScalar x = YamlScalar (BS.pack $ show x) NoTag Any

+instance IsYamlScalar Integer where
+  fromYamlScalar (YamlScalar v _ _) = read $ BS.unpack v
+  toYamlScalar x = YamlScalar (BS.pack $ show x) NoTag Any
+
 serialize :: IsYamlObject a => a -> BS.ByteString
 serialize x =
   let c :: YamlObject
diff --git a/Network/YAML/Instances.hs b/Network/YAML/Instances.hs
index 040d1a2..49225a7 100644
--- a/Network/YAML/Instances.hs
+++ b/Network/YAML/Instances.hs
@@ -71,6 +71,14 @@ instance ConvertSuccess Int YamlObject where

 instance IsYamlObject Int where

+instance ConvertSuccess YamlObject Integer where
+  convertSuccess x = fromMaybe def $ getScalar x
+
+instance ConvertSuccess Integer YamlObject where
+  convertSuccess x = Scalar $ toYamlScalar x
+
+instance IsYamlObject Integer where
+
 instance ConvertSuccess YamlObject BS.ByteString where
   convertSuccess x = fromMaybe def $ getScalar x
ViewGit