Update serde to 0.9 (fixes #15325)

This commit is contained in:
Anthony Ramine 2017-02-10 02:35:26 +01:00
parent 26d6c96b18
commit fe3f4ff0c2
73 changed files with 630 additions and 604 deletions

View file

@ -10,13 +10,11 @@ name = "servo_url"
path = "lib.rs"
[features]
servo = ["heapsize", "heapsize_derive", "serde", "serde_derive",
"url/heap_size", "url/serde"]
servo = ["heapsize", "heapsize_derive", "serde", "url/heap_size", "url_serde"]
[dependencies]
heapsize = {version = "0.3.0", optional = true}
heapsize_derive = {version = "0.1", optional = true}
serde = {version = "0.8", optional = true}
serde_derive = {version = "0.8", optional = true}
serde = {version = "0.9", optional = true}
url = "1.2"
url_serde = {version = "0.1", optional = true}

View file

@ -7,11 +7,10 @@
#![crate_name = "servo_url"]
#![crate_type = "rlib"]
#![cfg_attr(feature = "servo", feature(plugin))]
#[cfg(feature = "servo")] #[macro_use] extern crate serde_derive;
#[cfg(feature = "servo")] extern crate heapsize;
#[cfg(feature = "servo")] #[macro_use] extern crate heapsize_derive;
#[cfg(feature = "servo")] extern crate serde;
#[cfg(feature = "servo")] extern crate url_serde;
extern crate url;
@ -23,7 +22,7 @@ use std::sync::Arc;
use url::{Url, Origin, Position};
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf, Serialize, Deserialize))]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
pub struct ServoUrl(Arc<Url>);
impl ServoUrl {
@ -196,3 +195,21 @@ impl From<Url> for ServoUrl {
ServoUrl::from_url(url)
}
}
#[cfg(feature = "servo")]
impl serde::Serialize for ServoUrl {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: serde::Serializer,
{
url_serde::serialize(&*self.0, serializer)
}
}
#[cfg(feature = "servo")]
impl serde::Deserialize for ServoUrl {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: serde::Deserializer,
{
url_serde::deserialize(deserializer).map(Self::from_url)
}
}