diff --git a/Cargo.toml b/Cargo.toml index 9ad5258..a80b71f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,6 @@ rust-crypto = "0.2" rustc-serialize = "0.3" secp256k1 = "0.5" serde = "0.6" -serde_json = "0.6" +strason = "0.3" time = "0.1" diff --git a/src/lib.rs b/src/lib.rs index 9c2101a..74a6378 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,7 +46,7 @@ extern crate rand; extern crate rustc_serialize as serialize; extern crate secp256k1; extern crate serde; -extern crate serde_json as json; +extern crate strason; #[cfg(all(test, feature = "unstable"))] extern crate test; extern crate time; diff --git a/src/test_macros.rs b/src/test_macros.rs index 44b55b1..d0e8272 100644 --- a/src/test_macros.rs +++ b/src/test_macros.rs @@ -19,17 +19,13 @@ #[macro_export] macro_rules! serde_round_trip ( ($var:expr) => ({ - use serde::{json, Serialize, Deserialize}; + use serde::{Serialize, Deserialize}; + use strason; let start = $var; - let mut encoded = Vec::new(); - { - let mut serializer = json::ser::Serializer::new(&mut encoded); - start.serialize(&mut serializer).unwrap(); - } - let mut deserializer = json::de::Deserializer::new(encoded.iter().map(|c| Ok(*c))).unwrap(); - let decoded = Deserialize::deserialize(&mut deserializer); - assert_eq!(Some(start), decoded.ok()); + let encoded = strason::from_serialize(start).unwrap(); + let decoded = encoded.into_deserialize().unwrap(); + assert_eq!(start, decoded); }) ); diff --git a/src/util/hash.rs b/src/util/hash.rs index 3383e79..f88c5bf 100644 --- a/src/util/hash.rs +++ b/src/util/hash.rs @@ -282,7 +282,7 @@ impl MerkleRoot for Vec { mod tests { use num::FromPrimitive; use serde::{Serialize, Deserialize}; - use json; + use strason; use network::serialize::{serialize, deserialize}; use util::hash::Sha256dHash; @@ -309,15 +309,11 @@ mod tests { #[test] fn test_hash_encode_decode() { let hash = Sha256dHash::from_data(&[]); - let mut writer = vec![]; - { - let mut serializer = json::ser::Serializer::new(&mut writer); - assert!(hash.serialize(&mut serializer).is_ok()); - } - assert_eq!(&writer[..], + let encoded = strason::from_serialize(&hash).unwrap(); + assert_eq!(encoded.to_bytes(), "\"56944c5d3f98413ef45cf54545538103cc9f298e0575820ad3591376e2e0f65d\"".as_bytes()); - let mut deserializer = json::de::Deserializer::new(writer.iter().map(|c| Ok(*c))); - assert_eq!(hash, Deserialize::deserialize(&mut deserializer).unwrap()); + let decoded = encoded.into_deserialize().unwrap(); + assert_eq!(hash, decoded); } #[test]