diff options
| author | Adolfo OchagavĂa <aochagavia92@gmail.com> | 2014-06-28 15:39:49 +0200 |
|---|---|---|
| committer | Adolfo OchagavĂa <aochagavia92@gmail.com> | 2014-06-30 21:35:47 +0200 |
| commit | 954c3234a0c871856908ab0cabaf1b8ccbba9cbc (patch) | |
| tree | fe3538beb53c4ef226d3dabd212cf88f322fe487 /src/libserialize/json.rs | |
| parent | 6ae5e92cc226fc9252957df56afbd5fbd5b2b2a8 (diff) | |
| download | rust-954c3234a0c871856908ab0cabaf1b8ccbba9cbc.tar.gz rust-954c3234a0c871856908ab0cabaf1b8ccbba9cbc.zip | |
Implement FromStr for Json
Diffstat (limited to 'src/libserialize/json.rs')
| -rw-r--r-- | src/libserialize/json.rs | 16 |
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()); |
