diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-22 09:43:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-22 09:43:20 -0500 |
commit | 0fb5d634a007f3d0424f95569ac3f83d500d054c (patch) | |
tree | 55550a10bb3a7220282a8905c0eae3962f92ec21 /components/style | |
parent | 87d991ebd24886051ad1131bdbe3b9019cb1c4b3 (diff) | |
parent | b103e8baa7145a125f5eb02debe0947ecc24776d (diff) | |
download | servo-0fb5d634a007f3d0424f95569ac3f83d500d054c.tar.gz servo-0fb5d634a007f3d0424f95569ac3f83d500d054c.zip |
Auto merge of #11816 - servo:stable-style, r=nox
Make the style crate (almost) build with a stable compiler
<!-- Please describe your changes on the following line: -->
The bulk of this is adding cargo features to make derived implementations of `heapsize` and `serde` traits optional.
"Almost" because `std::intrinsics::discriminant_value` is currently unstable and doesn’t have any stable replacement that I know of. For now, this PR conditionally replaces it with `unimplemented!()`.
r? @nox
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes <s>fix</s> are part of #11815 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not <s>require tests</s> *have tests yet* because that requires https://github.com/servo/servo/issues/11806, but I still want to land this before it bitrots. (Tests should check that the build succeeds with a stable compiler.)
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11816)
<!-- Reviewable:end -->
Diffstat (limited to 'components/style')
35 files changed, 361 insertions, 207 deletions
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml index 98492645bc7..8a9e207aff2 100644 --- a/components/style/Cargo.toml +++ b/components/style/Cargo.toml @@ -12,31 +12,35 @@ path = "lib.rs" [features] gecko = ["gecko_bindings"] +servo = ["serde", "serde/nightly", "serde_macros", "heapsize", "heapsize_plugin", + "style_traits/servo", "app_units/plugins", "euclid/plugins", + "cssparser/heap_size", "cssparser/serde-serialization", + "selectors/heap_size", "selectors/unstable", "string_cache/heap_size", + "url/heap_size"] [dependencies] -app_units = {version = "0.2.3", features = ["plugins"]} +app_units = "0.2.3" bitflags = "0.7" -cssparser = {version = "0.5.5", features = ["heap_size", "serde-serialization"]} +cssparser = "0.5.5" encoding = "0.2" -euclid = {version = "0.6.4", features = ["plugins"]} +euclid = "0.6.4" fnv = "1.0" gecko_bindings = {path = "../../ports/geckolib/gecko_bindings", optional = true} -heapsize = "0.3.0" -heapsize_plugin = "0.1.2" +heapsize = {version = "0.3.0", optional = true} +heapsize_plugin = {version = "0.1.2", optional = true} lazy_static = "0.2" log = "0.3.5" matches = "0.1" num-traits = "0.1.32" -plugins = {path = "../plugins"} rustc-serialize = "0.3" -selectors = {version = "0.6", features = ["heap_size", "unstable"]} -serde = {version = "0.7", features = ["nightly"]} -serde_macros = "0.7" +selectors = "0.6" +serde = {version = "0.7", optional = true} +serde_macros = {version = "0.7", optional = true} smallvec = "0.1" -string_cache = {version = "0.2.20", features = ["heap_size"]} +string_cache = "0.2.20" style_traits = {path = "../style_traits"} time = "0.1" -url = {version = "1.0.0", features = ["heap_size"]} +url = "1.0.0" util = {path = "../util"} [build-dependencies] diff --git a/components/style/attr.rs b/components/style/attr.rs index 42fdbbc853b..e16591f6c37 100644 --- a/components/style/attr.rs +++ b/components/style/attr.rs @@ -17,14 +17,16 @@ use values::specified::Length; // Duplicated from script::dom::values. const UNSIGNED_LONG_MAX: u32 = 2147483647; -#[derive(Clone, Copy, Debug, HeapSizeOf, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrAuto { Auto, Percentage(f32), Length(Au), } -#[derive(PartialEq, Clone, HeapSizeOf)] +#[derive(PartialEq, Clone)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum AttrValue { String(String), TokenList(String, Vec<Atom>), @@ -538,7 +540,8 @@ pub fn parse_length(mut value: &str) -> LengthOrPercentageOrAuto { } } -#[derive(Clone, HeapSizeOf, Debug)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct AttrIdentifier { pub local_name: Atom, pub name: Atom, diff --git a/components/style/custom_properties.rs b/components/style/custom_properties.rs index 80aed5c10c3..957e5899486 100644 --- a/components/style/custom_properties.rs +++ b/components/style/custom_properties.rs @@ -23,7 +23,8 @@ pub fn parse_name(s: &str) -> Result<&str, ()> { } } -#[derive(Clone, PartialEq, Debug, HeapSizeOf)] +#[derive(Clone, PartialEq, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { css: String, @@ -41,7 +42,8 @@ pub struct BorrowedSpecifiedValue<'a> { references: Option<&'a HashSet<Name>>, } -#[derive(Clone, HeapSizeOf, Debug)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ComputedValue { css: String, first_token_type: TokenSerializationType, diff --git a/components/style/data.rs b/components/style/data.rs index 3698eeddf5b..ee0975c3737 100644 --- a/components/style/data.rs +++ b/components/style/data.rs @@ -33,7 +33,7 @@ impl<Impl, ConcreteComputedValues> PrivateStyleData<Impl, ConcreteComputedValues } /// Information that we need stored in each DOM node. -#[derive(HeapSizeOf)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct DomParallelInfo { /// The number of children that still need work done. pub children_count: AtomicIsize, diff --git a/components/style/dom.rs b/components/style/dom.rs index 7d10b394989..7713cc1aa0a 100644 --- a/components/style/dom.rs +++ b/components/style/dom.rs @@ -31,7 +31,8 @@ pub type UnsafeNode = (usize, usize); /// Because the script task's GC does not trace layout, node data cannot be safely stored in layout /// data structures. Also, layout code tends to be faster when the DOM is not being accessed, for /// locality reasons. Using `OpaqueNode` enforces this invariant. -#[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf, Hash, Eq, Deserialize, Serialize)] +#[derive(Clone, PartialEq, Copy, Debug, Hash, Eq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub struct OpaqueNode(pub usize); impl OpaqueNode { diff --git a/components/style/element_state.rs b/components/style/element_state.rs index 9b84bde45c1..e641c450123 100644 --- a/components/style/element_state.rs +++ b/components/style/element_state.rs @@ -4,7 +4,7 @@ bitflags! { #[doc = "Event-based element states."] - #[derive(HeapSizeOf)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub flags ElementState: u16 { #[doc = "The mouse is down on this element. \ https://html.spec.whatwg.org/multipage/#selector-active \ diff --git a/components/style/error_reporting.rs b/components/style/error_reporting.rs index d2977d28b3a..1ea1afbd5d1 100644 --- a/components/style/error_reporting.rs +++ b/components/style/error_reporting.rs @@ -20,6 +20,6 @@ impl ParseErrorReporter for StdoutErrorReporter { } fn clone(&self) -> Box<ParseErrorReporter + Send + Sync> { - box StdoutErrorReporter + Box::new(StdoutErrorReporter) } } diff --git a/components/style/font_face.rs b/components/style/font_face.rs index f3876210478..9ecdcffe5d5 100644 --- a/components/style/font_face.rs +++ b/components/style/font_face.rs @@ -9,19 +9,22 @@ use properties::longhands::font_family::parse_one_family; use std::iter; use url::Url; -#[derive(Clone, Debug, HeapSizeOf, PartialEq, Eq, Deserialize, Serialize)] +#[derive(Clone, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub enum Source { Url(UrlSource), Local(FontFamily), } -#[derive(Clone, Debug, HeapSizeOf, PartialEq, Eq, Deserialize, Serialize)] +#[derive(Clone, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub struct UrlSource { pub url: Url, pub format_hints: Vec<String>, } -#[derive(Debug, HeapSizeOf, PartialEq, Eq)] +#[derive(Debug, PartialEq, Eq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct FontFaceRule { pub family: FontFamily, pub sources: Vec<Source>, @@ -59,7 +62,8 @@ pub fn parse_font_face_block(context: &ParserContext, input: &mut Parser) } } -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "servo", derive(Deserialize, Serialize))] pub struct EffectiveSources(Vec<Source>); impl FontFaceRule { diff --git a/components/style/lib.rs b/components/style/lib.rs index 4ec45e45e04..28e2963f4ff 100644 --- a/components/style/lib.rs +++ b/components/style/lib.rs @@ -2,17 +2,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#![feature(box_syntax)] -#![feature(box_patterns)] -#![feature(concat_idents)] +// FIXME: replace discriminant_value with per-enum methods that use `match`? #![feature(core_intrinsics)] -#![feature(custom_attribute)] -#![feature(custom_derive)] -#![feature(plugin)] -#![plugin(heapsize_plugin)] -#![plugin(plugins)] -#![plugin(serde_macros)] +#![cfg_attr(feature = "servo", feature(custom_attribute))] +#![cfg_attr(feature = "servo", feature(custom_derive))] +#![cfg_attr(feature = "servo", feature(plugin))] +#![cfg_attr(feature = "servo", plugin(heapsize_plugin))] +#![cfg_attr(feature = "servo", plugin(serde_macros))] #![deny(unsafe_code)] @@ -30,7 +27,7 @@ extern crate euclid; extern crate fnv; #[cfg(feature = "gecko")] extern crate gecko_bindings; -extern crate heapsize; +#[cfg(feature = "servo")] extern crate heapsize; #[allow(unused_extern_crates)] #[macro_use] extern crate lazy_static; @@ -42,7 +39,7 @@ extern crate matches; extern crate num_traits; extern crate rustc_serialize; extern crate selectors; -extern crate serde; +#[cfg(feature = "servo")] extern crate serde; extern crate smallvec; #[macro_use(atom, ns)] extern crate string_cache; #[macro_use] diff --git a/components/style/logical_geometry.rs b/components/style/logical_geometry.rs index b6afaf6f540..2b41b512910 100644 --- a/components/style/logical_geometry.rs +++ b/components/style/logical_geometry.rs @@ -5,7 +5,8 @@ //! Geometry in flow-relative space. use euclid::num::Zero; -use euclid::{Point2D, Rect, SideOffsets2D, Size2D}; +use euclid::side_offsets::SideOffsets2D; +use euclid::{Point2D, Rect, Size2D}; use std::cmp::{max, min}; use std::fmt::{self, Debug, Error, Formatter}; use std::ops::{Add, Sub}; @@ -22,7 +23,8 @@ pub enum InlineBaseDirection { } bitflags!( - #[derive(HeapSizeOf, RustcEncodable)] + #[derive(RustcEncodable)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub flags WritingMode: u8 { const FLAG_RTL = 1 << 0, const FLAG_VERTICAL = 1 << 1, diff --git a/components/style/media_queries.rs b/components/style/media_queries.rs index 859b86ea963..87ae0c77722 100644 --- a/components/style/media_queries.rs +++ b/components/style/media_queries.rs @@ -10,12 +10,14 @@ use util::geometry::ViewportPx; use values::specified; -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct MediaQueryList { pub media_queries: Vec<MediaQuery> } -#[derive(PartialEq, Eq, Copy, Clone, Debug, HeapSizeOf)] +#[derive(PartialEq, Eq, Copy, Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Range<T> { Min(T), Max(T), @@ -58,20 +60,23 @@ impl<T: Ord> Range<T> { } /// http://dev.w3.org/csswg/mediaqueries-3/#media1 -#[derive(PartialEq, Copy, Clone, Debug, HeapSizeOf)] +#[derive(PartialEq, Copy, Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Expression { /// http://dev.w3.org/csswg/mediaqueries-3/#width Width(Range<specified::Length>), } /// http://dev.w3.org/csswg/mediaqueries-3/#media0 -#[derive(PartialEq, Eq, Copy, Clone, Debug, HeapSizeOf)] +#[derive(PartialEq, Eq, Copy, Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Qualifier { Only, Not, } -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct MediaQuery { pub qualifier: Option<Qualifier>, pub media_type: MediaQueryType, @@ -90,20 +95,23 @@ impl MediaQuery { } /// http://dev.w3.org/csswg/mediaqueries-3/#media0 -#[derive(PartialEq, Eq, Copy, Clone, Debug, HeapSizeOf)] +#[derive(PartialEq, Eq, Copy, Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum MediaQueryType { All, // Always true MediaType(MediaType), } -#[derive(PartialEq, Eq, Copy, Clone, Debug, HeapSizeOf)] +#[derive(PartialEq, Eq, Copy, Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum MediaType { Screen, Print, Unknown, } -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Device { pub media_type: MediaType, pub viewport_size: TypedSize2D<ViewportPx, f32>, diff --git a/components/style/parallel.rs b/components/style/parallel.rs index 0700986ee10..e967c3839fd 100644 --- a/components/style/parallel.rs +++ b/components/style/parallel.rs @@ -17,7 +17,7 @@ use util::workqueue::{WorkQueue, WorkUnit, WorkerProxy}; #[allow(dead_code)] fn static_assertion(node: UnsafeNode) { unsafe { - let _: UnsafeNodeList = ::std::intrinsics::transmute(node); + let _: UnsafeNodeList = mem::transmute(node); } } @@ -46,7 +46,7 @@ pub fn traverse_dom<N, C>(root: N, run_queue_with_custom_work_data_type(queue, |queue| { queue.push(WorkUnit { fun: top_down_dom::<N, C>, - data: (box vec![root.to_unsafe()], root.opaque()), + data: (Box::new(vec![root.to_unsafe()]), root.opaque()), }); }, queue_data); } @@ -89,7 +89,7 @@ fn top_down_dom<N, C>(unsafe_nodes: UnsafeNodeList, for chunk in discovered_child_nodes.chunks(CHUNK_SIZE) { proxy.push(WorkUnit { fun: top_down_dom::<N, C>, - data: (box chunk.iter().cloned().collect(), unsafe_nodes.1), + data: (Box::new(chunk.iter().cloned().collect()), unsafe_nodes.1), }); } } diff --git a/components/style/properties/longhand/background.mako.rs b/components/style/properties/longhand/background.mako.rs index 77be57aa097..aaac791c0e8 100644 --- a/components/style/properties/longhand/background.mako.rs +++ b/components/style/properties/longhand/background.mako.rs @@ -17,7 +17,8 @@ ${helpers.predefined_type( pub mod computed_value { use values::computed; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<computed::Image>); } @@ -32,7 +33,8 @@ ${helpers.predefined_type( } } - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(pub Option<Image>); impl ToCss for SpecifiedValue { @@ -77,14 +79,16 @@ ${helpers.predefined_type( pub mod computed_value { use values::computed::LengthOrPercentage; - #[derive(PartialEq, Copy, Clone, Debug, HeapSizeOf)] + #[derive(PartialEq, Copy, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T { pub horizontal: LengthOrPercentage, pub vertical: LengthOrPercentage, } } - #[derive(Debug, Clone, PartialEq, Copy, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { pub horizontal: specified::LengthOrPercentage, pub vertical: specified::LengthOrPercentage, @@ -198,13 +202,15 @@ ${helpers.single_keyword("background-origin", "padding-box border-box content-bo pub mod computed_value { use values::computed::LengthOrPercentageOrAuto; - #[derive(PartialEq, Clone, Debug, HeapSizeOf)] + #[derive(PartialEq, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ExplicitSize { pub width: LengthOrPercentageOrAuto, pub height: LengthOrPercentageOrAuto, } - #[derive(PartialEq, Clone, Debug, HeapSizeOf)] + #[derive(PartialEq, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum T { Explicit(ExplicitSize), Cover, @@ -222,7 +228,8 @@ ${helpers.single_keyword("background-origin", "padding-box border-box content-bo } } - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedExplicitSize { pub width: specified::LengthOrPercentageOrAuto, pub height: specified::LengthOrPercentageOrAuto, @@ -245,7 +252,8 @@ ${helpers.single_keyword("background-origin", "padding-box border-box content-bo } - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Explicit(SpecifiedExplicitSize), Cover, diff --git a/components/style/properties/longhand/border.mako.rs b/components/style/properties/longhand/border.mako.rs index fac233a6924..96656861583 100644 --- a/components/style/properties/longhand/border.mako.rs +++ b/components/style/properties/longhand/border.mako.rs @@ -34,7 +34,8 @@ -> Result<SpecifiedValue, ()> { specified::parse_border_width(input).map(SpecifiedValue) } - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(pub specified::Length); pub mod computed_value { use app_units::Au; diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index 800cf276a1a..eddc2da5053 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -28,8 +28,8 @@ pub mod computed_value { #[allow(non_camel_case_types)] - #[derive(Clone, Eq, PartialEq, Copy, Hash, RustcEncodable, Debug, HeapSizeOf)] - #[derive(Deserialize, Serialize)] + #[derive(Clone, Eq, PartialEq, Copy, Hash, RustcEncodable, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub enum T { % for value in values: ${to_rust_ident(value)}, @@ -136,7 +136,8 @@ ${helpers.single_keyword("clear", "none left right both", gecko_ffi_name="mBreak <% vertical_align_keywords = vertical_align.keyword.values_for(product) %> #[allow(non_camel_case_types)] - #[derive(Debug, Clone, PartialEq, Copy, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { % for keyword in vertical_align_keywords: ${to_rust_ident(keyword)}, @@ -174,7 +175,8 @@ ${helpers.single_keyword("clear", "none left right both", gecko_ffi_name="mBreak use values::AuExtensionMethods; use values::{CSSFloat, computed}; #[allow(non_camel_case_types)] - #[derive(PartialEq, Copy, Clone, HeapSizeOf, Debug)] + #[derive(PartialEq, Copy, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum T { % for keyword in vertical_align_keywords: ${to_rust_ident(keyword)}, @@ -243,7 +245,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= } pub mod computed_value { - #[derive(Debug, Clone, Copy, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, Copy, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub super::super::overflow_x::computed_value::T); } @@ -279,7 +282,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= pub use values::computed::Time as SingleComputedValue; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<SingleComputedValue>); impl ToComputedValue for T { @@ -385,7 +389,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= pub use self::TransitionTimingFunction as SingleComputedValue; - #[derive(Copy, Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Copy, Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum TransitionTimingFunction { CubicBezier(Point2D<f32>, Point2D<f32>), Steps(u32, StartEnd), @@ -416,7 +421,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= } } - #[derive(Copy, Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Copy, Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum StartEnd { Start, End, @@ -431,7 +437,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= } } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<TransitionTimingFunction>); impl ToCss for T { @@ -537,7 +544,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= pub use self::TransitionProperty as SingleComputedValue; - #[derive(Copy, Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Copy, Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum TransitionProperty { All, BackgroundColor, @@ -688,7 +696,8 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", need_clone= } } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<SingleComputedValue>); impl ToCss for T { @@ -863,14 +872,16 @@ ${helpers.single_keyword("-moz-appearance", use url::Url; use values::computed::ComputedValueAsSpecified; - #[derive(PartialEq, Clone, Debug, HeapSizeOf)] + #[derive(PartialEq, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct UrlExtraData { pub base: GeckoArcURI, pub referrer: GeckoArcURI, pub principal: GeckoArcPrincipal, } - #[derive(PartialEq, Clone, Debug, HeapSizeOf)] + #[derive(PartialEq, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Url(Url, UrlExtraData), None, diff --git a/components/style/properties/longhand/column.mako.rs b/components/style/properties/longhand/column.mako.rs index b040b9bd41e..cf24613496e 100644 --- a/components/style/properties/longhand/column.mako.rs +++ b/components/style/properties/longhand/column.mako.rs @@ -11,7 +11,8 @@ use std::fmt; use values::AuExtensionMethods; - #[derive(Debug, Clone, Copy, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, Copy, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Auto, Specified(specified::Length), @@ -28,7 +29,8 @@ pub mod computed_value { use app_units::Au; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<Au>); } @@ -72,7 +74,8 @@ use cssparser::ToCss; use std::fmt; - #[derive(Debug, Clone, Copy, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, Copy, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Auto, Specified(u32), @@ -88,7 +91,8 @@ } pub mod computed_value { - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<u32>); } @@ -138,7 +142,8 @@ use std::fmt; use values::AuExtensionMethods; - #[derive(Debug, Clone, Copy, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, Copy, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Normal, Specified(specified::Length), @@ -155,7 +160,8 @@ pub mod computed_value { use app_units::Au; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<Au>); } diff --git a/components/style/properties/longhand/counters.mako.rs b/components/style/properties/longhand/counters.mako.rs index 1f881b8e9ce..6dd97da6032 100644 --- a/components/style/properties/longhand/counters.mako.rs +++ b/components/style/properties/longhand/counters.mako.rs @@ -24,7 +24,8 @@ use cssparser::{self, ToCss}; use std::fmt; - #[derive(Debug, PartialEq, Eq, Clone, HeapSizeOf)] + #[derive(Debug, PartialEq, Eq, Clone)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum ContentItem { /// Literal string content. String(String), @@ -73,7 +74,8 @@ } #[allow(non_camel_case_types)] - #[derive(Debug, PartialEq, Eq, Clone, HeapSizeOf)] + #[derive(Debug, PartialEq, Eq, Clone)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum T { normal, none, @@ -180,7 +182,8 @@ pub use self::computed_value::T as SpecifiedValue; pub mod computed_value { - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<(String,i32)>); } diff --git a/components/style/properties/longhand/effects.mako.rs b/components/style/properties/longhand/effects.mako.rs index 96f832bb782..005d3576acd 100644 --- a/components/style/properties/longhand/effects.mako.rs +++ b/components/style/properties/longhand/effects.mako.rs @@ -16,10 +16,12 @@ ${helpers.predefined_type("opacity", use std::fmt; use values::AuExtensionMethods; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(Vec<SpecifiedBoxShadow>); - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedBoxShadow { pub offset_x: specified::Length, pub offset_y: specified::Length, @@ -72,10 +74,12 @@ ${helpers.predefined_type("opacity", use std::fmt; use values::computed; - #[derive(Clone, PartialEq, HeapSizeOf, Debug)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<BoxShadow>); - #[derive(Clone, PartialEq, Copy, HeapSizeOf, Debug)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct BoxShadow { pub offset_x: Au, pub offset_y: Au, @@ -229,7 +233,8 @@ ${helpers.predefined_type("opacity", pub mod computed_value { use app_units::Au; - #[derive(Clone, PartialEq, Eq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Eq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ClipRect { pub top: Au, pub right: Option<Au>, @@ -237,7 +242,8 @@ ${helpers.predefined_type("opacity", pub left: Au, } - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<ClipRect>); } @@ -271,7 +277,8 @@ ${helpers.predefined_type("opacity", } } - #[derive(Clone, Debug, PartialEq, Copy, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedClipRect { pub top: specified::Length, pub right: Option<specified::Length>, @@ -279,7 +286,8 @@ ${helpers.predefined_type("opacity", pub left: specified::Length, } - #[derive(Clone, Debug, PartialEq, Copy, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(Option<SpecifiedClipRect>); impl ToCss for SpecifiedClipRect { @@ -394,11 +402,13 @@ ${helpers.predefined_type("opacity", use values::CSSFloat; use values::specified::{Angle, Length}; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(Vec<SpecifiedFilter>); // TODO(pcwalton): `drop-shadow` - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedFilter { Blur(Length), Brightness(CSSFloat), @@ -416,7 +426,8 @@ ${helpers.predefined_type("opacity", use values::CSSFloat; use values::specified::{Angle}; - #[derive(Clone, PartialEq, Debug, HeapSizeOf, Deserialize, Serialize)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub enum Filter { Blur(Au), Brightness(CSSFloat), @@ -429,7 +440,8 @@ ${helpers.predefined_type("opacity", Sepia(CSSFloat), } - #[derive(Clone, PartialEq, Debug, HeapSizeOf, Deserialize, Serialize)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub struct T { pub filters: Vec<Filter> } impl T { @@ -629,7 +641,8 @@ ${helpers.predefined_type("opacity", use values::CSSFloat; use values::computed; - #[derive(Clone, Copy, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ComputedMatrix { pub m11: CSSFloat, pub m12: CSSFloat, pub m13: CSSFloat, pub m14: CSSFloat, pub m21: CSSFloat, pub m22: CSSFloat, pub m23: CSSFloat, pub m24: CSSFloat, @@ -648,7 +661,8 @@ ${helpers.predefined_type("opacity", } } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum ComputedOperation { Matrix(ComputedMatrix), Skew(computed::Angle, computed::Angle), @@ -660,7 +674,8 @@ ${helpers.predefined_type("opacity", Perspective(computed::Length), } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<Vec<ComputedOperation>>); } @@ -695,7 +710,8 @@ ${helpers.predefined_type("opacity", Ok((first, second)) } - #[derive(Copy, Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Copy, Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] enum TranslateKind { Translate, TranslateX, @@ -704,7 +720,8 @@ ${helpers.predefined_type("opacity", Translate3D, } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] enum SpecifiedOperation { Matrix(SpecifiedMatrix), Skew(specified::Angle, specified::Angle), @@ -783,7 +800,8 @@ ${helpers.predefined_type("opacity", } } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(Vec<SpecifiedOperation>); impl ToCss for SpecifiedValue { @@ -1173,7 +1191,8 @@ ${helpers.single_keyword("transform-style", "auto flat preserve-3d")} pub mod computed_value { use values::computed::{Length, LengthOrPercentage}; - #[derive(Clone, Copy, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T { pub horizontal: LengthOrPercentage, pub vertical: LengthOrPercentage, @@ -1181,7 +1200,8 @@ ${helpers.single_keyword("transform-style", "auto flat preserve-3d")} } } - #[derive(Clone, Copy, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { horizontal: LengthOrPercentage, vertical: LengthOrPercentage, @@ -1253,7 +1273,8 @@ ${helpers.predefined_type("perspective", pub mod computed_value { use values::computed::LengthOrPercentage; - #[derive(Clone, Copy, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T { pub horizontal: LengthOrPercentage, pub vertical: LengthOrPercentage, @@ -1268,7 +1289,8 @@ ${helpers.predefined_type("perspective", } } - #[derive(Clone, Copy, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { horizontal: LengthOrPercentage, vertical: LengthOrPercentage, diff --git a/components/style/properties/longhand/font.mako.rs b/components/style/properties/longhand/font.mako.rs index aeef47c94fb..cf63c578adb 100644 --- a/components/style/properties/longhand/font.mako.rs +++ b/components/style/properties/longhand/font.mako.rs @@ -19,7 +19,8 @@ use std::fmt; use string_cache::Atom; - #[derive(Debug, PartialEq, Eq, Clone, Hash, HeapSizeOf, Deserialize, Serialize)] + #[derive(Debug, PartialEq, Eq, Clone, Hash)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub enum FontFamily { FamilyName(Atom), Generic(Atom), @@ -73,7 +74,8 @@ Ok(()) } } - #[derive(Debug, Clone, PartialEq, Eq, Hash, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq, Eq, Hash)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<FontFamily>); } @@ -122,7 +124,8 @@ ${helpers.single_keyword("font-variant", "normal small-caps")} use cssparser::ToCss; use std::fmt; - #[derive(Debug, Clone, PartialEq, Eq, Copy, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq, Eq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Bolder, Lighter, @@ -169,7 +172,8 @@ ${helpers.single_keyword("font-variant", "normal small-caps")} } pub mod computed_value { use std::fmt; - #[derive(PartialEq, Eq, Copy, Clone, Hash, Deserialize, Serialize, HeapSizeOf, Debug)] + #[derive(PartialEq, Eq, Copy, Clone, Hash, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] #[repr(u16)] pub enum T { % for weight in range(100, 901, 100): @@ -250,7 +254,8 @@ ${helpers.single_keyword("font-variant", "normal small-caps")} } } - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(pub specified::LengthOrPercentage); pub mod computed_value { use app_units::Au; diff --git a/components/style/properties/longhand/inherited_box.mako.rs b/components/style/properties/longhand/inherited_box.mako.rs index 655d9dac674..482780f3a6e 100644 --- a/components/style/properties/longhand/inherited_box.mako.rs +++ b/components/style/properties/longhand/inherited_box.mako.rs @@ -40,7 +40,8 @@ ${helpers.single_keyword("color-adjust", "economy exact", products="gecko")} use cssparser::ToCss; use std::fmt; - #[derive(Copy, Clone, Debug, PartialEq, HeapSizeOf, Deserialize, Serialize)] + #[derive(Copy, Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub enum T { Auto, CrispEdges, @@ -96,7 +97,8 @@ ${helpers.single_keyword("color-adjust", "economy exact", products="gecko")} use std::fmt; use values::computed::ComputedValueAsSpecified; - #[derive(Copy, Clone, Debug, Eq, PartialEq, HeapSizeOf, Serialize, Deserialize)] + #[derive(Copy, Clone, Debug, Eq, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub struct SpecifiedValue(pub bool); pub mod computed_value { diff --git a/components/style/properties/longhand/inherited_table.mako.rs b/components/style/properties/longhand/inherited_table.mako.rs index 2a45b2fd43a..8837412cd9a 100644 --- a/components/style/properties/longhand/inherited_table.mako.rs +++ b/components/style/properties/longhand/inherited_table.mako.rs @@ -20,14 +20,16 @@ ${helpers.single_keyword("caption-side", "top bottom", extra_gecko_values="right pub mod computed_value { use app_units::Au; - #[derive(Clone, Copy, Debug, PartialEq, RustcEncodable, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq, RustcEncodable)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T { pub horizontal: Au, pub vertical: Au, } } - #[derive(Clone, Debug, PartialEq, HeapSizeOf)] + #[derive(Clone, Debug, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { pub horizontal: specified::Length, pub vertical: specified::Length, diff --git a/components/style/properties/longhand/inherited_text.mako.rs b/components/style/properties/longhand/inherited_text.mako.rs index dedc6e60102..358d260459a 100644 --- a/components/style/properties/longhand/inherited_text.mako.rs +++ b/components/style/properties/longhand/inherited_text.mako.rs @@ -12,7 +12,8 @@ use values::AuExtensionMethods; use values::CSSFloat; - #[derive(Debug, Clone, PartialEq, Copy, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Normal, % if product == "gecko": @@ -61,7 +62,8 @@ use app_units::Au; use std::fmt; use values::CSSFloat; - #[derive(PartialEq, Copy, Clone, HeapSizeOf, Debug)] + #[derive(PartialEq, Copy, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum T { Normal, % if product == "gecko": @@ -182,7 +184,8 @@ use std::fmt; use values::AuExtensionMethods; - #[derive(Debug, Clone, Copy, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, Copy, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Normal, Specified(specified::Length), @@ -199,7 +202,8 @@ pub mod computed_value { use app_units::Au; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<Au>); } @@ -244,7 +248,8 @@ use std::fmt; use values::AuExtensionMethods; - #[derive(Debug, Clone, Copy, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, Copy, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { Normal, Specified(specified::Length), // FIXME(SimonSapin) support percentages @@ -261,7 +266,8 @@ pub mod computed_value { use app_units::Au; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<Au>); } @@ -332,7 +338,8 @@ ${helpers.single_keyword("text-justify", impl ComputedValueAsSpecified for SpecifiedValue {} - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { pub underline: Option<RGBA>, pub overline: Option<RGBA>, @@ -446,10 +453,12 @@ ${helpers.single_keyword("text-justify", use std::fmt; use values::AuExtensionMethods; - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(Vec<SpecifiedTextShadow>); - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedTextShadow { pub offset_x: specified::Length, pub offset_y: specified::Length, @@ -461,10 +470,12 @@ ${helpers.single_keyword("text-justify", use app_units::Au; use cssparser::Color; - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<TextShadow>); - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct TextShadow { pub offset_x: Au, pub offset_y: Au, diff --git a/components/style/properties/longhand/list.mako.rs b/components/style/properties/longhand/list.mako.rs index 309e248c2dd..298f387cf13 100644 --- a/components/style/properties/longhand/list.mako.rs +++ b/components/style/properties/longhand/list.mako.rs @@ -31,7 +31,8 @@ ${helpers.single_keyword("list-style-type", """ use url::Url; use values::LocalToCss; - #[derive(Debug, Clone, PartialEq, Eq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq, Eq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { None, Url(Url), @@ -52,7 +53,8 @@ ${helpers.single_keyword("list-style-type", """ use url::Url; use values::LocalToCss; - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Option<Url>); impl ToCss for T { @@ -100,7 +102,8 @@ ${helpers.single_keyword("list-style-type", """ pub use self::computed_value::T as SpecifiedValue; pub mod computed_value { - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct T(pub Vec<(String,String)>); } diff --git a/components/style/properties/longhand/outline.mako.rs b/components/style/properties/longhand/outline.mako.rs index afa2c9a06c7..ee91fc06499 100644 --- a/components/style/properties/longhand/outline.mako.rs +++ b/components/style/properties/longhand/outline.mako.rs @@ -41,7 +41,8 @@ ${helpers.predefined_type("outline-color", "CSSColor", "::cssparser::Color::Curr pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { specified::parse_border_width(input).map(SpecifiedValue) } - #[derive(Debug, Clone, PartialEq, HeapSizeOf)] + #[derive(Debug, Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue(pub specified::Length); pub mod computed_value { use app_units::Au; diff --git a/components/style/properties/longhand/pointing.mako.rs b/components/style/properties/longhand/pointing.mako.rs index 7068a951b0e..c2ad1502a9e 100644 --- a/components/style/properties/longhand/pointing.mako.rs +++ b/components/style/properties/longhand/pointing.mako.rs @@ -17,7 +17,8 @@ use std::fmt; use style_traits::cursor::Cursor; - #[derive(Clone, PartialEq, Eq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Eq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum T { AutoCursor, SpecifiedCursor(Cursor), diff --git a/components/style/properties/longhand/position.mako.rs b/components/style/properties/longhand/position.mako.rs index bc93a6614e5..5ce0b83f87d 100644 --- a/components/style/properties/longhand/position.mako.rs +++ b/components/style/properties/longhand/position.mako.rs @@ -20,7 +20,8 @@ use cssparser::ToCss; use std::fmt; - #[derive(PartialEq, Clone, Eq, Copy, Debug, HeapSizeOf)] + #[derive(PartialEq, Clone, Eq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum T { Auto, Number(i32), diff --git a/components/style/properties/longhand/text.mako.rs b/components/style/properties/longhand/text.mako.rs index 9bf491a4546..2e34a0c6243 100644 --- a/components/style/properties/longhand/text.mako.rs +++ b/components/style/properties/longhand/text.mako.rs @@ -24,7 +24,8 @@ ${helpers.single_keyword("unicode-bidi", "normal embed isolate bidi-override iso impl ComputedValueAsSpecified for SpecifiedValue {} - #[derive(PartialEq, Eq, Copy, Clone, Debug, HeapSizeOf)] + #[derive(PartialEq, Eq, Copy, Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct SpecifiedValue { pub underline: bool, pub overline: bool, diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs index 3d41c30366b..6d57a635748 100644 --- a/components/style/properties/properties.mako.rs +++ b/components/style/properties/properties.mako.rs @@ -25,7 +25,7 @@ use cssparser::{Parser, RGBA, AtRuleParser, DeclarationParser, Delimiter, DeclarationListParser, parse_important, ToCss, TokenSerializationType}; use error_reporting::ParseErrorReporter; use url::Url; -use euclid::SideOffsets2D; +use euclid::side_offsets::SideOffsets2D; use euclid::size::Size2D; use string_cache::Atom; use computed_values; @@ -261,11 +261,12 @@ use std::slice; /// Overridden declarations are skipped. // FIXME (https://github.com/servo/servo/issues/3426) -#[derive(Debug, PartialEq, HeapSizeOf)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct PropertyDeclarationBlock { - #[ignore_heap_size_of = "#7038"] + #[cfg_attr(feature = "servo", ignore_heap_size_of = "#7038")] pub important: Arc<Vec<PropertyDeclaration>>, - #[ignore_heap_size_of = "#7038"] + #[cfg_attr(feature = "servo", ignore_heap_size_of = "#7038")] pub normal: Arc<Vec<PropertyDeclaration>>, } @@ -616,7 +617,8 @@ impl CSSWideKeyword { } } -#[derive(Clone, Copy, Eq, PartialEq, Debug, HeapSizeOf)] +#[derive(Clone, Copy, Eq, PartialEq, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Shorthand { % for property in data.shorthands: ${property.camel_case}, @@ -722,7 +724,8 @@ impl Shorthand { } } -#[derive(Clone, PartialEq, Eq, Debug, HeapSizeOf)] +#[derive(Clone, PartialEq, Eq, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum DeclaredValue<T> { Value(T), WithVariables { @@ -753,7 +756,8 @@ impl<T: ToCss> ToCss for DeclaredValue<T> { } } -#[derive(PartialEq, Clone, Debug, HeapSizeOf)] +#[derive(PartialEq, Clone, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum PropertyDeclaration { % for property in data.longhands: ${property.camel_case}(DeclaredValue<longhands::${property.ident}::SpecifiedValue>), @@ -1064,9 +1068,11 @@ pub mod style_structs { % for style_struct in data.active_style_structs(): % if style_struct.trait_name == "Font": - #[derive(Clone, HeapSizeOf, Debug)] + #[derive(Clone, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] % else: - #[derive(PartialEq, Clone, HeapSizeOf)] + #[derive(PartialEq, Clone)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] % endif pub struct ${style_struct.servo_struct_name} { % for longhand in style_struct.longhands: @@ -1233,7 +1239,8 @@ pub trait ComputedValues : Clone + Send + Sync + 'static { fn is_multicol(&self) -> bool; } -#[derive(Clone, HeapSizeOf)] +#[derive(Clone)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ServoComputedValues { % for style_struct in data.active_style_structs(): ${style_struct.ident}: Arc<style_structs::${style_struct.servo_struct_name}>, @@ -1692,7 +1699,7 @@ pub fn make_cascade_vec<C: ComputedValues>() -> Vec<Option<CascadePropertyFn<C>> % for property in style_struct.longhands: let discriminant; unsafe { - let variant = PropertyDeclaration::${property.camel_case}(intrinsics::uninit()); + let variant = PropertyDeclaration::${property.camel_case}(mem::uninitialized()); discriminant = intrinsics::discriminant_value(&variant) as usize; mem::forget(variant); } diff --git a/components/style/restyle_hints.rs b/components/style/restyle_hints.rs index 3a90852c13a..361d7110d04 100644 --- a/components/style/restyle_hints.rs +++ b/components/style/restyle_hints.rs @@ -50,7 +50,8 @@ bitflags! { /// now to reduce complexity, but it's worth measuring the performance impact (if any) of the /// mStateMask approach. -#[derive(HeapSizeOf, Clone)] +#[derive(Clone)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ElementSnapshot { pub state: Option<ElementState>, pub attrs: Option<Vec<(AttrIdentifier, AttrValue)>>, @@ -225,7 +226,8 @@ fn combinator_to_restyle_hint(combinator: Option<Combinator>) -> RestyleHint { } } -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] struct Sensitivities { pub states: ElementState, pub attrs: bool, @@ -262,14 +264,16 @@ impl Sensitivities { // us to quickly scan through the dependency sites of all style rules and determine the // maximum effect that a given state or attribute change may have on the style of // elements in the document. -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] struct Dependency<Impl: SelectorImplExt> { selector: Arc<CompoundSelector<Impl>>, combinator: Option<Combinator>, sensitivities: Sensitivities, } -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct DependencySet<Impl: SelectorImplExt> { deps: Vec<Dependency<Impl>>, } diff --git a/components/style/selector_impl.rs b/components/style/selector_impl.rs index 14e6b366690..6125415df78 100644 --- a/components/style/selector_impl.rs +++ b/components/style/selector_impl.rs @@ -95,7 +95,8 @@ pub trait SelectorImplExt : SelectorImpl + Sized { fn get_quirks_mode_stylesheet() -> Option<&'static Stylesheet<Self>>; } -#[derive(Clone, Debug, PartialEq, Eq, HeapSizeOf, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum PseudoElement { Before, After, @@ -117,7 +118,8 @@ impl PseudoElement { } } -#[derive(Clone, Debug, PartialEq, Eq, HeapSizeOf, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum NonTSPseudoClass { AnyLink, Link, @@ -158,7 +160,8 @@ impl NonTSPseudoClass { } } -#[derive(Clone, Debug, PartialEq, HeapSizeOf)] +#[derive(Clone, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ServoSelectorImpl; impl SelectorImpl for ServoSelectorImpl { diff --git a/components/style/selector_matching.rs b/components/style/selector_matching.rs index 79f590f5482..50bbf7dab49 100644 --- a/components/style/selector_matching.rs +++ b/components/style/selector_matching.rs @@ -44,7 +44,7 @@ lazy_static! { None, None, Origin::UserAgent, - box StdoutErrorReporter, + Box::new(StdoutErrorReporter), ParserContextExtraData::default()); stylesheets.push(ua_stylesheet); } @@ -56,7 +56,7 @@ lazy_static! { } for &(ref contents, ref url) in &opts::get().user_stylesheets { stylesheets.push(Stylesheet::from_bytes( - &contents, url.clone(), None, None, Origin::User, box StdoutErrorReporter, + &contents, url.clone(), None, None, Origin::User, Box::new(StdoutErrorReporter), ParserContextExtraData::default())); } stylesheets @@ -73,7 +73,7 @@ lazy_static! { None, None, Origin::UserAgent, - box StdoutErrorReporter, + Box::new(StdoutErrorReporter), ParserContextExtraData::default()) }, Err(..) => { @@ -100,7 +100,7 @@ lazy_static! { /// `ServoSelectorImpl`, the implementation used by Servo's layout system in /// regular builds, or `GeckoSelectorImpl`, the implementation used in the /// geckolib port. -#[derive(HeapSizeOf)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Stylist<Impl: SelectorImplExt> { /// Device that the stylist is currently evaluating against. pub device: Device, @@ -269,7 +269,7 @@ impl<Impl: SelectorImplExt> Stylist<Impl> { properties::cascade(self.device.au_viewport_size(), &declarations, false, parent.map(|p| &**p), None, - box StdoutErrorReporter); + Box::new(StdoutErrorReporter)); Some(Arc::new(computed)) } else { parent.map(|p| p.clone()) @@ -302,7 +302,7 @@ impl<Impl: SelectorImplExt> Stylist<Impl> { properties::cascade(self.device.au_viewport_size(), &declarations, false, Some(&**parent), None, - box StdoutErrorReporter); + Box::new(StdoutErrorReporter)); Some(Arc::new(computed)) } @@ -438,7 +438,7 @@ impl<Impl: SelectorImplExt> Stylist<Impl> { } /// Map that contains the CSS rules for a given origin. -#[derive(HeapSizeOf)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] struct PerOriginSelectorMap<Impl: SelectorImpl> { /// Rules that contains at least one property declararion with /// normal importance. @@ -460,7 +460,7 @@ impl<Impl: SelectorImpl> PerOriginSelectorMap<Impl> { /// Map that contains the CSS rules for a specific PseudoElement /// (or lack of PseudoElement). -#[derive(HeapSizeOf)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] struct PerPseudoElementSelectorMap<Impl: SelectorImpl> { /// Rules from user agent stylesheets user_agent: PerOriginSelectorMap<Impl>, diff --git a/components/style/stylesheets.rs b/components/style/stylesheets.rs index 4de57e81d40..53990e7f84f 100644 --- a/components/style/stylesheets.rs +++ b/components/style/stylesheets.rs @@ -24,7 +24,8 @@ use viewport::ViewportRule; /// Each style rule has an origin, which determines where it enters the cascade. /// /// http://dev.w3.org/csswg/css-cascade/#cascading-origins -#[derive(Clone, PartialEq, Eq, Copy, Debug, HeapSizeOf)] +#[derive(Clone, PartialEq, Eq, Copy, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Origin { /// http://dev.w3.org/csswg/css-cascade/#cascade-origin-ua UserAgent, @@ -37,7 +38,8 @@ pub enum Origin { } -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Stylesheet<Impl: SelectorImpl> { /// List of rules in the order they were found (important for /// cascading order) @@ -49,7 +51,8 @@ pub struct Stylesheet<Impl: SelectorImpl> { } -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum CSSRule<Impl: SelectorImpl> { Charset(String), Namespace(Option<String>, Namespace), @@ -59,7 +62,8 @@ pub enum CSSRule<Impl: SelectorImpl> { Viewport(ViewportRule), } -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct MediaRule<Impl: SelectorImpl> { pub media_queries: MediaQueryList, pub rules: Vec<CSSRule<Impl>>, @@ -72,7 +76,8 @@ impl<Impl: SelectorImpl> MediaRule<Impl> { } } -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct StyleRule<Impl: SelectorImpl> { pub selectors: Vec<Selector<Impl>>, pub declarations: PropertyDeclarationBlock, diff --git a/components/style/traversal.rs b/components/style/traversal.rs index 1afdcbb34c7..d383cc5f706 100644 --- a/components/style/traversal.rs +++ b/components/style/traversal.rs @@ -53,11 +53,11 @@ fn take_thread_local_bloom_filter<N, Impl: SelectorImplExt>(parent_node: Option< // Root node. Needs new bloom filter. (None, _ ) => { debug!("[{}] No parent, but new bloom filter!", tid()); - box BloomFilter::new() + Box::new(BloomFilter::new()) } // No bloom filter for this thread yet. (Some(parent), None) => { - let mut bloom_filter = box BloomFilter::new(); + let mut bloom_filter = Box::new(BloomFilter::new()); insert_ancestors_into_bloom_filter(&mut bloom_filter, parent, root); bloom_filter } diff --git a/components/style/values.rs b/components/style/values.rs index a6c73977d44..6d62d69357e 100644 --- a/components/style/values.rs +++ b/components/style/values.rs @@ -41,8 +41,8 @@ macro_rules! define_numbered_css_keyword_enum { }; ($name: ident: $( $css: expr => $variant: ident = $value: expr ),+) => { #[allow(non_camel_case_types)] - #[derive(Clone, Eq, PartialEq, PartialOrd, Ord, Copy, RustcEncodable, Debug, HeapSizeOf)] - #[derive(Deserialize, Serialize)] + #[derive(Clone, Eq, PartialEq, PartialOrd, Ord, Copy, RustcEncodable, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub enum $name { $( $variant = $value ),+ } @@ -104,7 +104,8 @@ pub mod specified { use super::{CSSFloat, FONT_MEDIUM_PX}; use url::Url; - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct CSSColor { pub parsed: cssparser::Color, pub authored: Option<String>, @@ -133,7 +134,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct CSSRGBA { pub parsed: cssparser::RGBA, pub authored: Option<String>, @@ -148,7 +150,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum FontRelativeLength { Em(CSSFloat), Ex(CSSFloat), @@ -185,7 +188,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum ViewportPercentageLength { Vw(CSSFloat), Vh(CSSFloat), @@ -226,7 +230,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct CharacterWidth(pub i32); impl CharacterWidth { @@ -241,7 +246,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Length { Absolute(Au), // application units FontRelative(FontRelativeLength), @@ -439,9 +445,9 @@ pub mod specified { SimplifiedValueNode::Angle(Angle(a)) => SimplifiedValueNode::Angle(Angle(a * scalar)), SimplifiedValueNode::Time(Time(t)) => SimplifiedValueNode::Time(Time(t * scalar)), SimplifiedValueNode::Number(n) => SimplifiedValueNode::Number(n * scalar), - SimplifiedValueNode::Sum(box ref s) => { - let sum = s * scalar; - SimplifiedValueNode::Sum(box sum) + SimplifiedValueNode::Sum(ref s) => { + let sum = &**s * scalar; + SimplifiedValueNode::Sum(Box::new(sum)) } } } @@ -507,7 +513,8 @@ pub mod specified { Time, } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct CalcLengthOrPercentage { pub absolute: Option<Au>, pub vw: Option<ViewportPercentageLength>, @@ -589,7 +596,7 @@ pub mod specified { Ok(CalcValueNode::Percentage(value.unit_value)), (Token::ParenthesisBlock, _) => { input.parse_nested_block(|i| CalcLengthOrPercentage::parse_sum(i, expected_unit)) - .map(|result| CalcValueNode::Sum(box result)) + .map(|result| CalcValueNode::Sum(Box::new(result))) }, _ => Err(()) } @@ -598,7 +605,7 @@ pub mod specified { fn simplify_value_to_number(node: &CalcValueNode) -> Option<CSSFloat> { match *node { CalcValueNode::Number(number) => Some(number), - CalcValueNode::Sum(box ref sum) => CalcLengthOrPercentage::simplify_sum_to_number(sum), + CalcValueNode::Sum(ref sum) => CalcLengthOrPercentage::simplify_sum_to_number(sum), _ => None } } @@ -629,7 +636,7 @@ pub mod specified { let mut simplified = Vec::new(); for product in &node.products { match try!(CalcLengthOrPercentage::simplify_product(product)) { - SimplifiedValueNode::Sum(box sum) => simplified.extend_from_slice(&sum.values), + SimplifiedValueNode::Sum(ref sum) => simplified.extend_from_slice(&sum.values), val => simplified.push(val), } } @@ -637,7 +644,7 @@ pub mod specified { if simplified.len() == 1 { Ok(simplified[0].clone()) } else { - Ok(SimplifiedValueNode::Sum(box SimplifiedSumNode { values: simplified } )) + Ok(SimplifiedValueNode::Sum(Box::new(SimplifiedSumNode { values: simplified }))) } } @@ -649,7 +656,7 @@ pub mod specified { Some(number) => multiplier *= number, _ if node_with_unit.is_none() => { node_with_unit = Some(match *node { - CalcValueNode::Sum(box ref sum) => + CalcValueNode::Sum(ref sum) => try!(CalcLengthOrPercentage::simplify_products_in_sum(sum)), CalcValueNode::Length(l) => SimplifiedValueNode::Length(l), CalcValueNode::Angle(a) => SimplifiedValueNode::Angle(a), @@ -855,7 +862,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Percentage(pub CSSFloat); // [0 .. 100%] maps to [0.0 .. 1.0] impl ToCss for Percentage { @@ -864,7 +872,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentage { Length(Length), Percentage(Percentage), @@ -912,7 +921,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrAuto { Length(Length), Percentage(Percentage), @@ -961,7 +971,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrNone { Length(Length), Percentage(Percentage), @@ -1009,7 +1020,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrNone { Length(Length), None, @@ -1049,7 +1061,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrAutoOrContent { Length(Length), Percentage(Percentage), @@ -1093,7 +1106,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct BorderRadiusSize(pub Size2D<LengthOrPercentage>); impl BorderRadiusSize { @@ -1169,7 +1183,8 @@ pub mod specified { } } - #[derive(Clone, PartialEq, PartialOrd, Copy, Debug, HeapSizeOf, Deserialize, Serialize)] + #[derive(Clone, PartialEq, PartialOrd, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))] pub struct Angle(pub CSSFloat); impl ToCss for Angle { @@ -1215,7 +1230,8 @@ pub mod specified { } /// Specified values for an image according to CSS-IMAGES. - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Image { Url(Url), LinearGradient(LinearGradient), @@ -1250,7 +1266,8 @@ pub mod specified { } /// Specified values for a CSS linear gradient. - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct LinearGradient { /// The angle or corner of the gradient. pub angle_or_corner: AngleOrCorner, @@ -1273,7 +1290,8 @@ pub mod specified { } /// Specified values for an angle or a corner in a linear gradient. - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum AngleOrCorner { Angle(Angle), Corner(HorizontalDirection, VerticalDirection), @@ -1295,7 +1313,8 @@ pub mod specified { } /// Specified values for one color stop in a linear gradient. - #[derive(Clone, PartialEq, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ColorStop { /// The color of this stop. pub color: CSSColor, @@ -1424,7 +1443,8 @@ pub mod specified { } /// A time in seconds according to CSS-VALUES § 6.2. - #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq, PartialOrd)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Time(pub CSSFloat); impl Time { @@ -1473,7 +1493,8 @@ pub mod specified { } } - #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq, PartialOrd)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Number(pub CSSFloat); impl Number { @@ -1510,7 +1531,8 @@ pub mod specified { } } - #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, HeapSizeOf)] + #[derive(Clone, Copy, Debug, PartialEq, PartialOrd)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct Opacity(pub CSSFloat); impl Opacity { @@ -1630,7 +1652,8 @@ pub mod computed { } } - #[derive(Clone, PartialEq, Copy, Debug, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy, Debug)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct CalcLengthOrPercentage { pub length: Option<Au>, pub percentage: Option<CSSFloat>, @@ -1734,7 +1757,8 @@ pub mod computed { } - #[derive(PartialEq, Clone, Copy, HeapSizeOf)] + #[derive(PartialEq, Clone, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct BorderRadiusSize(pub Size2D<LengthOrPercentage>); impl BorderRadiusSize { @@ -1762,7 +1786,8 @@ pub mod computed { } } - #[derive(PartialEq, Clone, Copy, HeapSizeOf)] + #[derive(PartialEq, Clone, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentage { Length(Au), Percentage(CSSFloat), @@ -1827,7 +1852,8 @@ pub mod computed { } } - #[derive(PartialEq, Clone, Copy, HeapSizeOf)] + #[derive(PartialEq, Clone, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrAuto { Length(Au), Percentage(CSSFloat), @@ -1894,7 +1920,8 @@ pub mod computed { } } - #[derive(PartialEq, Clone, Copy, HeapSizeOf)] + #[derive(PartialEq, Clone, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrAutoOrContent { Length(Au), Percentage(CSSFloat), @@ -1952,7 +1979,8 @@ pub mod computed { } } - #[derive(PartialEq, Clone, Copy, HeapSizeOf)] + #[derive(PartialEq, Clone, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrPercentageOrNone { Length(Au), Percentage(CSSFloat), @@ -2004,7 +2032,8 @@ pub mod computed { } } - #[derive(PartialEq, Clone, Copy, HeapSizeOf)] + #[derive(PartialEq, Clone, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum LengthOrNone { Length(Au), None, @@ -2062,7 +2091,8 @@ pub mod computed { /// Computed values for an image according to CSS-IMAGES. - #[derive(Clone, PartialEq, HeapSizeOf)] + #[derive(Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum Image { Url(Url), LinearGradient(LinearGradient), @@ -2078,7 +2108,8 @@ pub mod computed { } /// Computed values for a CSS linear gradient. - #[derive(Clone, PartialEq, HeapSizeOf)] + #[derive(Clone, PartialEq)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct LinearGradient { /// The angle or corner of the gradient. pub angle_or_corner: AngleOrCorner, @@ -2111,7 +2142,8 @@ pub mod computed { } /// Computed values for one color stop in a linear gradient. - #[derive(Clone, PartialEq, Copy, HeapSizeOf)] + #[derive(Clone, PartialEq, Copy)] + #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ColorStop { /// The color of this stop. pub color: CSSColor, diff --git a/components/style/viewport.rs b/components/style/viewport.rs index e9308f5403a..ec7e1f8aa4a 100644 --- a/components/style/viewport.rs +++ b/components/style/viewport.rs @@ -21,7 +21,8 @@ use util::geometry::ViewportPx; use values::computed::{Context, ToComputedValue}; use values::specified::{Length, LengthOrPercentageOrAuto, ViewportPercentageLength}; -#[derive(Copy, Clone, Debug, HeapSizeOf, PartialEq)] +#[derive(Copy, Clone, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum ViewportDescriptor { MinWidth(ViewportLength), MaxWidth(ViewportLength), @@ -45,7 +46,8 @@ trait FromMeta: Sized { // See: // * http://dev.w3.org/csswg/css-device-adapt/#min-max-width-desc // * http://dev.w3.org/csswg/css-device-adapt/#extend-to-zoom -#[derive(Copy, Clone, Debug, HeapSizeOf, PartialEq)] +#[derive(Copy, Clone, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum ViewportLength { Specified(LengthOrPercentageOrAuto), ExtendToZoom @@ -133,7 +135,8 @@ struct ViewportRuleParser<'a, 'b: 'a> { context: &'a ParserContext<'b> } -#[derive(Copy, Clone, Debug, HeapSizeOf, PartialEq)] +#[derive(Copy, Clone, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ViewportDescriptorDeclaration { pub origin: Origin, pub descriptor: ViewportDescriptor, @@ -228,7 +231,8 @@ impl<'a, 'b> DeclarationParser for ViewportRuleParser<'a, 'b> { } } -#[derive(Debug, HeapSizeOf, PartialEq)] +#[derive(Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ViewportRule { pub declarations: Vec<ViewportDescriptorDeclaration> } |