about summary refs log tree commit diff
path: root/src/libserialize/json.rs
diff options
context:
space:
mode:
authorAdolfo OchagavĂ­a <aochagavia92@gmail.com>2014-06-28 15:39:49 +0200
committerAdolfo OchagavĂ­a <aochagavia92@gmail.com>2014-06-30 21:35:47 +0200
commit954c3234a0c871856908ab0cabaf1b8ccbba9cbc (patch)
treefe3538beb53c4ef226d3dabd212cf88f322fe487 /src/libserialize/json.rs
parent6ae5e92cc226fc9252957df56afbd5fbd5b2b2a8 (diff)
downloadrust-954c3234a0c871856908ab0cabaf1b8ccbba9cbc.tar.gz
rust-954c3234a0c871856908ab0cabaf1b8ccbba9cbc.zip
Implement FromStr for Json
Diffstat (limited to 'src/libserialize/json.rs')
-rw-r--r--src/libserialize/json.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/libserialize/json.rs b/src/libserialize/json.rs
index 77dc73b4f66..1f376da5270 100644
--- a/src/libserialize/json.rs
+++ b/src/libserialize/json.rs
@@ -2166,6 +2166,12 @@ impl fmt::Show for Json {
     }
 }
 
+impl std::from_str::FromStr for Json {
+    fn from_str(s: &str) -> Option<Json> {
+        from_str(s).ok()
+    }
+}
+
 #[cfg(test)]
 mod tests {
     extern crate test;
@@ -2180,9 +2186,7 @@ mod tests {
                 InvalidSyntax, InvalidNumber, EOFWhileParsingObject, EOFWhileParsingList,
                 EOFWhileParsingValue, EOFWhileParsingString, KeyMustBeAString, ExpectedColon,
                 TrailingCharacters};
-    use std::f32;
-    use std::f64;
-    use std::io;
+    use std::{f32, f64, io};
     use std::collections::TreeMap;
 
     #[deriving(PartialEq, Encodable, Decodable, Show)]
@@ -2216,6 +2220,12 @@ mod tests {
     }
 
     #[test]
+    fn test_from_str_trait() {
+        let s = "null";
+        assert!(::std::from_str::from_str::<Json>(s).unwrap() == from_str(s).unwrap());
+    }
+
+    #[test]
     fn test_write_null() {
         assert_eq!(Null.to_str().into_string(), "null".to_string());
         assert_eq!(Null.to_pretty_str().into_string(), "null".to_string());