فهرست منبع

Make rustc-serialize an optional dependency.

Simon Sapin 10 سال پیش
والد
کامیت
7517c8d565
3فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 2 1
      Cargo.toml
  2. 1 1
      Makefile
  3. 3 1
      src/lib.rs

+ 2 - 1
Cargo.toml

@@ -21,6 +21,7 @@ harness = false
 
 [dev-dependencies]
 rustc-test = "0.1"
+rustc-serialize = "0.3"
 
 [features]
 query_encoding = ["encoding"]
@@ -32,5 +33,5 @@ heapsize = {version = ">=0.1.1, <0.4", optional = true}
 heapsize_plugin = {version = "0.1.0", optional = true}
 encoding = {version = "0.2", optional = true}
 serde = {version = ">=0.6.1, <0.8", optional = true}
-rustc-serialize = "0.3"
+rustc-serialize = {version = "0.3", optional = true}
 matches = "0.1"

+ 1 - 1
Makefile

@@ -1,5 +1,5 @@
 test:
-	cargo test --features "query_encoding serde"
+	cargo test --features "query_encoding serde rustc-serialize"
 	[ x$$TRAVIS_RUST_VERSION != xnightly ] || cargo test --features heap_size
 
 doc:

+ 3 - 1
src/lib.rs

@@ -118,7 +118,7 @@ assert_eq!(css_url.as_str(), "http://servo.github.io/rust-url/main.css")
 #![cfg_attr(feature="heap_size", feature(plugin, custom_derive))]
 #![cfg_attr(feature="heap_size", plugin(heapsize_plugin))]
 
-extern crate rustc_serialize;
+#[cfg(feature="rustc-serialize")] extern crate rustc_serialize;
 #[macro_use] extern crate matches;
 #[cfg(feature="serde")] extern crate serde;
 #[cfg(feature="heap_size")] #[macro_use] extern crate heapsize;
@@ -538,6 +538,7 @@ impl RangeArg for RangeTo<u32> {
     }
 }
 
+#[cfg(feature="rustc-serialize")]
 impl rustc_serialize::Encodable for Url {
     fn encode<S: rustc_serialize::Encoder>(&self, encoder: &mut S) -> Result<(), S::Error> {
         encoder.emit_str(self.as_str())
@@ -545,6 +546,7 @@ impl rustc_serialize::Encodable for Url {
 }
 
 
+#[cfg(feature="rustc-serialize")]
 impl rustc_serialize::Decodable for Url {
     fn decode<D: rustc_serialize::Decoder>(decoder: &mut D) -> Result<Url, D::Error> {
         Url::parse(&*try!(decoder.read_str())).map_err(|error| {