|
|
@@ -7,7 +7,9 @@
|
|
|
// except according to those terms.
|
|
|
|
|
|
use idna::punycode::{decode, encode_str};
|
|
|
-use rustc_serialize::json::{Json, Object};
|
|
|
+use serde_json::Value;
|
|
|
+use serde_json::map::Map;
|
|
|
+use std::str::FromStr;
|
|
|
use test::TestFn;
|
|
|
|
|
|
fn one_test(decoded: &str, encoded: &str) {
|
|
|
@@ -37,20 +39,20 @@ fn one_test(decoded: &str, encoded: &str) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-fn get_string<'a>(map: &'a Object, key: &str) -> &'a str {
|
|
|
+fn get_string<'a>(map: &'a Map<String, Value>, key: &str) -> &'a str {
|
|
|
match map.get(&key.to_string()) {
|
|
|
- Some(&Json::String(ref s)) => s,
|
|
|
+ Some(&Value::String(ref s)) => s,
|
|
|
None => "",
|
|
|
_ => panic!(),
|
|
|
}
|
|
|
}
|
|
|
|
|
|
pub fn collect_tests<F: FnMut(String, TestFn)>(add_test: &mut F) {
|
|
|
- match Json::from_str(include_str!("punycode_tests.json")) {
|
|
|
- Ok(Json::Array(tests)) => {
|
|
|
+ match Value::from_str(include_str!("punycode_tests.json")) {
|
|
|
+ Ok(Value::Array(tests)) => {
|
|
|
for (i, test) in tests.into_iter().enumerate() {
|
|
|
match test {
|
|
|
- Json::Object(o) => {
|
|
|
+ Value::Object(o) => {
|
|
|
let test_name = {
|
|
|
let desc = get_string(&o, "description");
|
|
|
if desc.is_empty() {
|