diff --git a/Cargo.toml b/Cargo.toml index 2406d81..9416996 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,14 +19,10 @@ version = "0.2.1" default-features = false features = ["std"] -[dependencies.rustc-serialize] -optional = true -version = "0.3.19" - [dependencies.serde] optional = true -version = ">= 0.7.0, < 0.9.0" +version = "1.0" [features] -default = ["rustc-serialize"] +default = [] unstable = [] diff --git a/ci/test_full.sh b/ci/test_full.sh index 5521ed5..cc1276c 100755 --- a/ci/test_full.sh +++ b/ci/test_full.sh @@ -13,11 +13,7 @@ cargo build --no-default-features cargo test --no-default-features # Each isolated feature should also work everywhere. -for feature in rustc-serialize serde; do +for feature in serde; do cargo build --verbose --no-default-features --features="$feature" cargo test --verbose --no-default-features --features="$feature" done - -# Downgrade serde and build test the 0.7.0 channel as well -cargo update -p serde --precise 0.7.0 -cargo build --verbose --no-default-features --features "serde" diff --git a/src/lib.rs b/src/lib.rs index d85f63a..18fa4e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -18,9 +18,6 @@ extern crate num_traits as traits; -#[cfg(feature = "rustc-serialize")] -extern crate rustc_serialize; - #[cfg(feature = "serde")] extern crate serde; @@ -62,7 +59,6 @@ use traits::{Zero, One, Num, Inv, Float}; /// } /// ``` #[derive(PartialEq, Eq, Copy, Clone, Hash, Debug, Default)] -#[cfg_attr(feature = "rustc-serialize", derive(RustcEncodable, RustcDecodable))] #[repr(C)] pub struct Complex { /// Real portion of the complex number @@ -1077,7 +1073,7 @@ impl Num for Complex { impl serde::Serialize for Complex where T: serde::Serialize { - fn serialize(&self, serializer: &mut S) -> Result<(), S::Error> where + fn serialize(&self, serializer: S) -> Result where S: serde::Serializer { (&self.re, &self.im).serialize(serializer) @@ -1085,11 +1081,11 @@ impl serde::Serialize for Complex } #[cfg(feature = "serde")] -impl serde::Deserialize for Complex where - T: serde::Deserialize + Num + Clone +impl<'de, T> serde::Deserialize<'de> for Complex where + T: serde::Deserialize<'de> + Num + Clone { - fn deserialize(deserializer: &mut D) -> Result where - D: serde::Deserializer, + fn deserialize(deserializer: D) -> Result where + D: serde::Deserializer<'de>, { let (re, im) = try!(serde::Deserialize::deserialize(deserializer)); Ok(Complex::new(re, im))