diff --git a/components/script_traits/Cargo.toml b/components/script_traits/Cargo.toml index f1e21ca27b6..b3d980268cb 100644 --- a/components/script_traits/Cargo.toml +++ b/components/script_traits/Cargo.toml @@ -15,7 +15,7 @@ msg = {path = "../msg"} net_traits = {path = "../net_traits"} plugins = {path = "../plugins"} profile_traits = {path = "../profile_traits"} -style_traits = {path = "../style_traits", features = ["serde-serialization"]} +style_traits = {path = "../style_traits", features = ["servo"]} util = {path = "../util"} devtools_traits = {path = "../devtools_traits"} ipc-channel = {git = "https://github.com/servo/ipc-channel"} diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml index f82b0ddb44c..e55c2dbaae2 100644 --- a/components/style/Cargo.toml +++ b/components/style/Cargo.toml @@ -12,7 +12,7 @@ path = "lib.rs" [features] gecko = ["gecko_bindings"] -servo = ["serde", "serde_macros", "heapsize", "heapsize_plugin", "style_traits/heap_size"] +servo = ["serde", "serde_macros", "heapsize", "heapsize_plugin", "style_traits/servo"] [dependencies] app_units = "0.2.3" diff --git a/components/style_traits/Cargo.toml b/components/style_traits/Cargo.toml index b8dd5079e95..67de5b40dac 100644 --- a/components/style_traits/Cargo.toml +++ b/components/style_traits/Cargo.toml @@ -9,8 +9,8 @@ name = "style_traits" path = "lib.rs" [features] -heap_size = ["heapsize", "heapsize_plugin", "cssparser/heap_size", "euclid/plugins"] -serde-serialization = ["serde", "serde_macros", "cssparser/serde-serialization", "euclid/plugins"] +servo = ["heapsize", "heapsize_plugin", "serde", "serde_macros", "euclid/plugins", + "cssparser/heap_size", "cssparser/serde-serialization"] [dependencies] util = {path = "../util"} diff --git a/components/style_traits/cursor.rs b/components/style_traits/cursor.rs index 722a69a499a..d667b1c3d73 100644 --- a/components/style_traits/cursor.rs +++ b/components/style_traits/cursor.rs @@ -9,8 +9,7 @@ use cssparser::ToCss; macro_rules! define_cursor { ($( $css: expr => $variant: ident = $value: expr, )+) => { #[derive(Clone, Copy, Debug, Eq, PartialEq)] - #[cfg_attr(feature = "serde-serialization", derive(Deserialize, Serialize))] - #[cfg_attr(feature = "heap_size", derive(HeapSizeOf))] + #[cfg_attr(feature = "servo", derive(Deserialize, Serialize, HeapSizeOf))] #[repr(u8)] pub enum Cursor { $( $variant = $value ),+ diff --git a/components/style_traits/lib.rs b/components/style_traits/lib.rs index 8cb3cb3769d..3b68e412d36 100644 --- a/components/style_traits/lib.rs +++ b/components/style_traits/lib.rs @@ -11,19 +11,17 @@ #![deny(unsafe_code)] -#![cfg_attr(feature = "serde-serialization", feature(custom_derive))] -#![cfg_attr(feature = "serde-serialization", feature(plugin))] -#![cfg_attr(feature = "serde-serialization", plugin(serde_macros))] -#![cfg_attr(feature = "heap_size", feature(custom_derive))] -#![cfg_attr(feature = "heap_size", feature(plugin))] -#![cfg_attr(feature = "heap_size", plugin(heapsize_plugin))] +#![cfg_attr(feature = "servo", feature(custom_derive))] +#![cfg_attr(feature = "servo", feature(plugin))] +#![cfg_attr(feature = "servo", plugin(serde_macros))] +#![cfg_attr(feature = "servo", plugin(heapsize_plugin))] #[macro_use] extern crate cssparser; extern crate euclid; -#[cfg(feature = "heap_size")] extern crate heapsize; +#[cfg(feature = "servo")] extern crate heapsize; extern crate rustc_serialize; -#[cfg(feature = "serde-serialization")] extern crate serde; +#[cfg(feature = "servo")] extern crate serde; extern crate util; pub mod cursor; diff --git a/components/style_traits/values.rs b/components/style_traits/values.rs index 6139e2f5b53..995e98fcfef 100644 --- a/components/style_traits/values.rs +++ b/components/style_traits/values.rs @@ -5,53 +5,33 @@ #[macro_export] macro_rules! define_css_keyword_enum { ($name: ident: $( $css: expr => $variant: ident ),+,) => { - __define_css_keyword_enum__add_serde!($name [ $( $css => $variant ),+ ]); + __define_css_keyword_enum__add_optional_traits!($name [ $( $css => $variant ),+ ]); }; ($name: ident: $( $css: expr => $variant: ident ),+) => { - __define_css_keyword_enum__add_serde!($name [ $( $css => $variant ),+ ]); + __define_css_keyword_enum__add_optional_traits!($name [ $( $css => $variant ),+ ]); }; } -#[cfg(feature = "serde-serialization")] +#[cfg(feature = "servo")] #[macro_export] -macro_rules! __define_css_keyword_enum__add_serde { +macro_rules! __define_css_keyword_enum__add_optional_traits { ($name: ident [ $( $css: expr => $variant: ident ),+ ]) => { - __define_css_keyword_enum__add_heapsize! { - $name [ Deserialize, Serialize ] [ $( $css => $variant ),+ ] + __define_css_keyword_enum__actual! { + $name [ Deserialize, Serialize, HeapSizeOf ] [ $( $css => $variant ),+ ] } }; } -#[cfg(not(feature = "serde-serialization"))] +#[cfg(not(feature = "servo"))] #[macro_export] -macro_rules! __define_css_keyword_enum__add_serde { +macro_rules! __define_css_keyword_enum__add_optional_traits { ($name: ident [ $( $css: expr => $variant: ident ),+ ]) => { - __define_css_keyword_enum__add_heapsize! { + __define_css_keyword_enum__actual! { $name [] [ $( $css => $variant ),+ ] } }; } -#[cfg(feature = "heap_size")] -#[macro_export] -macro_rules! __define_css_keyword_enum__add_heapsize { - ($name: ident [ $( $derived_trait: ident),* ] [ $( $css: expr => $variant: ident ),+ ]) => { - __define_css_keyword_enum__actual! { - $name [ $( $derived_trait, )* HeapSizeOf ] [ $( $css => $variant ),+ ] - } - }; -} - -#[cfg(not(feature = "heap_size"))] -#[macro_export] -macro_rules! __define_css_keyword_enum__add_heapsize { - ($name: ident [ $( $derived_trait: ident),* ] [ $( $css: expr => $variant: ident ),+ ]) => { - __define_css_keyword_enum__actual! { - $name [ $( $derived_trait ),* ] [ $( $css => $variant ),+ ] - } - }; -} - #[macro_export] macro_rules! __define_css_keyword_enum__actual { ($name: ident [ $( $derived_trait: ident),* ] [ $( $css: expr => $variant: ident ),+ ]) => { diff --git a/components/style_traits/viewport.rs b/components/style_traits/viewport.rs index ad71b8257cf..96075f7a5e3 100644 --- a/components/style_traits/viewport.rs +++ b/components/style_traits/viewport.rs @@ -21,8 +21,7 @@ define_css_keyword_enum!(Orientation: #[derive(Clone, Debug, PartialEq)] -#[cfg_attr(feature = "serde-serialization", derive(Deserialize, Serialize))] -#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))] +#[cfg_attr(feature = "servo", derive(Deserialize, Serialize, HeapSizeOf))] pub struct ViewportConstraints { pub size: TypedSize2D, @@ -57,7 +56,7 @@ impl ToCss for ViewportConstraints { /// Zoom is a number | percentage | auto /// See http://dev.w3.org/csswg/css-device-adapt/#descdef-viewport-zoom #[derive(Copy, Clone, Debug, PartialEq)] -#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Zoom { Number(f32), Percentage(f32),