mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Update serde to 0.9 (fixes #15325)
This commit is contained in:
parent
26d6c96b18
commit
fe3f4ff0c2
73 changed files with 630 additions and 604 deletions
|
@ -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}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue