commit 0104b893df42667eef1b44ea3f16eb6a67e684a6 parent 9c002b5a70618ce822428e4b2d2e81a338f607f6 Author: Nico Burns <nico@nicoburns.com> Date: Mon, 15 Dec 2025 19:03:56 +0000 Bug 2005254: Import derive_more and style_derive macros using use:: rather than #[macro_use] (r=firefox-style-system-reviewers,dshin) This is the core fix for Bug 2005254. Where Stylo will fail to compile if any crate in the crate graph enables the "debug" feature of the "derive_more" crate. Differential Revision: https://phabricator.services.mozilla.com/D275839 Diffstat:
150 files changed, 172 insertions(+), 14 deletions(-)
diff --git a/servo/components/style/applicable_declarations.rs b/servo/components/style/applicable_declarations.rs @@ -4,6 +4,7 @@ //! Applicable declarations management. +use crate::derives::*; use crate::properties::PropertyDeclarationBlock; use crate::rule_tree::{CascadeLevel, StyleSource}; use crate::shared_lock::Locked; diff --git a/servo/components/style/author_styles.rs b/servo/components/style/author_styles.rs @@ -5,6 +5,7 @@ //! A set of author stylesheets and their computed representation, such as the //! ones used for ShadowRoot. +use crate::derives::*; use crate::dom::TElement; use crate::shared_lock::SharedRwLockReadGuard; use crate::stylesheet_set::AuthorStylesheetSet; diff --git a/servo/components/style/color/color_function.rs b/servo/components/style/color/color_function.rs @@ -12,6 +12,7 @@ use super::{ parsing::{NumberOrAngleComponent, NumberOrPercentageComponent}, AbsoluteColor, ColorFlags, ColorSpace, }; +use crate::derives::*; use crate::values::{ computed::color::Color as ComputedColor, generics::Optional, normalize, specified::color::Color as SpecifiedColor, diff --git a/servo/components/style/color/component.rs b/servo/components/style/color/component.rs @@ -10,6 +10,7 @@ use super::{ parsing::{rcs_enabled, ChannelKeyword}, AbsoluteColor, }; +use crate::derives::*; use crate::{ parser::ParserContext, values::{ diff --git a/servo/components/style/color/mix.rs b/servo/components/style/color/mix.rs @@ -5,6 +5,7 @@ //! Color mixing/interpolation. use super::{AbsoluteColor, ColorFlags, ColorSpace}; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::color::ColorMixFlags; use cssparser::Parser; diff --git a/servo/components/style/color/mod.rs b/servo/components/style/color/mod.rs @@ -14,6 +14,7 @@ pub mod parsing; mod to_css; use self::parsing::ChannelKeyword; +use crate::derives::*; pub use color_function::*; use component::ColorComponent; use cssparser::color::PredefinedColorSpace; diff --git a/servo/components/style/color/parsing.rs b/servo/components/style/color/parsing.rs @@ -11,6 +11,7 @@ use super::{ component::{ColorComponent, ColorComponentType}, AbsoluteColor, }; +use crate::derives::*; use crate::{ parser::{Parse, ParserContext}, values::{ diff --git a/servo/components/style/context.rs b/servo/components/style/context.rs @@ -9,6 +9,7 @@ use crate::animation::DocumentAnimationSet; use crate::bloom::StyleBloom; use crate::computed_value_flags::ComputedValueFlags; use crate::data::{EagerPseudoStyles, ElementData}; +use crate::derives::*; use crate::dom::{SendElement, TElement}; #[cfg(feature = "gecko")] use crate::gecko_bindings::structs; diff --git a/servo/components/style/counter_style/mod.rs b/servo/components/style/counter_style/mod.rs @@ -6,6 +6,7 @@ //! //! [counter-style]: https://drafts.csswg.org/css-counter-styles/ +use crate::derives::*; use crate::error_reporting::ContextualParseError; use crate::parser::{Parse, ParserContext}; use crate::shared_lock::{SharedRwLockReadGuard, ToCssWithGuard}; diff --git a/servo/components/style/custom_properties.rs b/servo/components/style/custom_properties.rs @@ -8,6 +8,7 @@ use crate::applicable_declarations::CascadePriority; use crate::custom_properties_map::CustomPropertiesMap; +use crate::derives::*; use crate::dom::AttributeProvider; use crate::media_queries::Device; use crate::properties::{ diff --git a/servo/components/style/font_face.rs b/servo/components/style/font_face.rs @@ -6,6 +6,7 @@ //! //! [ff]: https://drafts.csswg.org/css-fonts/#at-font-face-rule +use crate::derives::*; use crate::error_reporting::ContextualParseError; use crate::parser::{Parse, ParserContext}; use crate::properties::longhands::font_language_override; diff --git a/servo/components/style/gecko/data.rs b/servo/components/style/gecko/data.rs @@ -4,6 +4,7 @@ //! Data needed to style a Gecko document. +use crate::derives::*; use crate::dom::TElement; use crate::gecko_bindings::bindings; use crate::gecko_bindings::structs::{ diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs @@ -4,6 +4,7 @@ //! Gecko's media feature list and evaluator. +use crate::derives::*; use crate::gecko_bindings::bindings; use crate::gecko_bindings::structs; use crate::media_queries::{Device, MediaType}; diff --git a/servo/components/style/gecko/pseudo_element_definition.mako.rs b/servo/components/style/gecko/pseudo_element_definition.mako.rs @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use crate::derives::*; + /// Gecko's pseudo-element definition. /// /// We intentionally double-box legacy ::-moz-tree pseudo-elements to keep the diff --git a/servo/components/style/gecko/selector_parser.rs b/servo/components/style/gecko/selector_parser.rs @@ -5,6 +5,7 @@ //! Gecko-specific bits for selector-parsing. use crate::computed_value_flags::ComputedValueFlags; +use crate::derives::*; use crate::invalidation::element::document_state::InvalidationMatchingData; use crate::properties::ComputedValues; use crate::selector_parser::{Direction, HorizontalDirection, SelectorParser}; diff --git a/servo/components/style/gecko/url.rs b/servo/components/style/gecko/url.rs @@ -4,6 +4,7 @@ //! Common handling for the specified value CSS url() values. +use crate::derives::*; use crate::gecko_bindings::bindings; use crate::gecko_bindings::structs; use crate::parser::{Parse, ParserContext}; diff --git a/servo/components/style/gecko_string_cache/namespace.rs b/servo/components/style/gecko_string_cache/namespace.rs @@ -4,6 +4,7 @@ //! A type to represent a namespace. +use crate::derives::*; use crate::gecko_bindings::structs::nsAtom; use crate::string_cache::{Atom, WeakAtom}; use precomputed_hash::PrecomputedHash; diff --git a/servo/components/style/invalidation/element/invalidation_map.rs b/servo/components/style/invalidation/element/invalidation_map.rs @@ -5,6 +5,7 @@ //! Code for invalidations due to state or attribute changes. use crate::context::QuirksMode; +use crate::derives::*; use crate::selector_map::{ MaybeCaseInsensitiveHashMap, PrecomputedHashMap, SelectorMap, SelectorMapEntry, }; diff --git a/servo/components/style/invalidation/media_queries.rs b/servo/components/style/invalidation/media_queries.rs @@ -5,6 +5,7 @@ //! Code related to the invalidation of media-query-affected rules. use crate::context::QuirksMode; +use crate::derives::*; use crate::media_queries::Device; use crate::shared_lock::SharedRwLockReadGuard; use crate::stylesheets::{CustomMediaMap, DocumentRule, ImportRule, MediaRule}; diff --git a/servo/components/style/invalidation/stylesheets.rs b/servo/components/style/invalidation/stylesheets.rs @@ -8,6 +8,7 @@ #![deny(unsafe_code)] use crate::context::QuirksMode; +use crate::derives::*; use crate::dom::{TDocument, TElement, TNode}; use crate::invalidation::element::element_wrapper::{ElementSnapshot, ElementWrapper}; use crate::invalidation::element::restyle_hints::RestyleHint; diff --git a/servo/components/style/lib.rs b/servo/components/style/lib.rs @@ -32,8 +32,6 @@ extern crate cssparser; #[macro_use] extern crate debug_unreachable; #[macro_use] -extern crate derive_more; -#[macro_use] #[cfg(feature = "gecko")] extern crate gecko_profiler; #[cfg(feature = "gecko")] @@ -45,8 +43,6 @@ extern crate lazy_static; extern crate log; #[macro_use] extern crate malloc_size_of; -#[macro_use] -extern crate malloc_size_of_derive; #[cfg(feature = "servo")] extern crate web_atoms; #[allow(unused_extern_crates)] @@ -57,8 +53,6 @@ pub use nsstring; #[cfg(feature = "gecko")] extern crate num_cpus; #[macro_use] -extern crate num_derive; -#[macro_use] extern crate serde; pub use servo_arc; #[cfg(feature = "servo")] @@ -66,17 +60,24 @@ pub use servo_arc; extern crate stylo_atoms; #[macro_use] extern crate static_assertions; -#[macro_use] -extern crate style_derive; #[cfg(feature = "gecko")] #[macro_use] extern crate thin_vec; -#[macro_use] -extern crate to_shmem_derive; #[macro_use] mod macros; +mod derives { + pub(crate) use derive_more::{Add, AddAssign, Deref, DerefMut, From}; + pub(crate) use malloc_size_of_derive::MallocSizeOf; + pub(crate) use num_derive::FromPrimitive; + pub(crate) use style_derive::{ + Animate, ComputeSquaredDistance, Parse, SpecifiedValueInfo, ToAnimatedValue, + ToAnimatedZero, ToComputedValue, ToCss, ToResolvedValue, ToTyped, + }; + pub(crate) use to_shmem_derive::ToShmem; +} + pub mod applicable_declarations; pub mod author_styles; pub mod bezier; diff --git a/servo/components/style/logical_geometry.rs b/servo/components/style/logical_geometry.rs @@ -4,6 +4,7 @@ //! Geometry in flow-relative space. +use crate::derives::*; use crate::properties::style_structs; use euclid::default::{Point2D, Rect, SideOffsets2D, Size2D}; use euclid::num::Zero; diff --git a/servo/components/style/media_queries/media_list.rs b/servo/components/style/media_queries/media_list.rs @@ -8,6 +8,7 @@ use super::{Device, MediaQuery, Qualifier}; use crate::context::QuirksMode; +use crate::derives::*; use crate::error_reporting::ContextualParseError; use crate::parser::ParserContext; use crate::stylesheets::CustomMediaEvaluator; diff --git a/servo/components/style/media_queries/media_query.rs b/servo/components/style/media_queries/media_query.rs @@ -6,6 +6,7 @@ //! //! https://drafts.csswg.org/mediaqueries/#typedef-media-query +use crate::derives::*; use crate::parser::ParserContext; use crate::queries::{FeatureFlags, FeatureType, QueryCondition}; use crate::str::string_as_ascii_lowercase; diff --git a/servo/components/style/piecewise_linear.rs b/servo/components/style/piecewise_linear.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ //! A piecewise linear function, following CSS linear easing +use crate::derives::*; use crate::values::computed::Percentage; use core::slice::Iter; /// draft as in https://github.com/w3c/csswg-drafts/pull/6533. diff --git a/servo/components/style/properties/computed_value_flags.rs b/servo/components/style/properties/computed_value_flags.rs @@ -12,7 +12,7 @@ /// we might want to add a function to handle this. #[repr(C)] #[derive(Clone, Copy, Debug, Eq, PartialEq)] -#[cfg_attr(feature = "servo", derive(MallocSizeOf))] +#[cfg_attr(feature = "servo", derive(crate::derives::MallocSizeOf))] pub struct ComputedValueFlags(u32); bitflags! { diff --git a/servo/components/style/properties/declaration_block.rs b/servo/components/style/properties/declaration_block.rs @@ -14,6 +14,7 @@ use super::{ }; use crate::context::QuirksMode; use crate::custom_properties; +use crate::derives::*; use crate::dom::DummyAttributeProvider; use crate::error_reporting::{ContextualParseError, ParseErrorReporter}; use crate::parser::ParserContext; diff --git a/servo/components/style/properties/helpers.mako.rs b/servo/components/style/properties/helpers.mako.rs @@ -108,6 +108,8 @@ use crate::values::animated::ToAnimatedValue; #[allow(unused_imports)] use crate::values::resolved::ToResolvedValue; + #[allow(unused_imports)] + use crate::derives::*; pub use super::single_value::computed_value as single_value; pub use self::single_value::T as SingleComputedValue; % if not allow_empty: @@ -373,6 +375,8 @@ /// ${property.spec} pub mod ${property.ident} { #[allow(unused_imports)] + use crate::derives::*; + #[allow(unused_imports)] use cssparser::{Parser, BasicParseError, Token}; #[allow(unused_imports)] use crate::parser::{Parse, ParserContext}; @@ -615,6 +619,8 @@ <%def name="inner_body(keyword, needs_conversion=False)"> pub use self::computed_value::T as SpecifiedValue; pub mod computed_value { + #[allow(unused_imports)] + use crate::derives::*; #[cfg_attr(feature = "servo", derive(Deserialize, Hash, Serialize))] #[derive(Clone, Copy, Debug, Eq, FromPrimitive, MallocSizeOf, Parse, PartialEq, SpecifiedValueInfo, ToAnimatedValue, ToComputedValue, ToCss, ToResolvedValue, ToShmem, ToTyped)] pub enum T { @@ -694,6 +700,8 @@ use style_traits::{ParseError, StyleParseErrorKind}; #[allow(unused_imports)] use style_traits::{CssWriter, KeywordsCollectFn, SpecifiedValueInfo, ToCss}; + #[allow(unused_imports)] + use style_derive::{Animate, ComputeSquaredDistance, ToAnimatedValue, Parse, ToAnimatedZero, ToComputedValue, ToResolvedValue, ToCss, SpecifiedValueInfo, ToTyped}; % if derive_value_info: #[derive(SpecifiedValueInfo)] diff --git a/servo/components/style/properties/helpers/animated_properties.mako.rs b/servo/components/style/properties/helpers/animated_properties.mako.rs @@ -25,6 +25,7 @@ use std::ptr; use std::mem; use rustc_hash::FxHashMap; use super::ComputedValues; +use crate::derives::*; use crate::properties::OwnedPropertyDeclarationId; use crate::dom::AttributeProvider; use crate::values::animated::{Animate, Procedure, ToAnimatedValue, ToAnimatedZero}; diff --git a/servo/components/style/properties/mod.rs b/servo/components/style/properties/mod.rs @@ -20,6 +20,7 @@ pub mod generated { } use crate::custom_properties::{self, ComputedCustomProperties}; +use crate::derives::*; use crate::dom::AttributeProvider; #[cfg(feature = "gecko")] use crate::gecko_bindings::structs::{CSSPropertyId, NonCustomCSSPropertyId, RefPtr}; diff --git a/servo/components/style/properties/properties.mako.rs b/servo/components/style/properties/properties.mako.rs @@ -23,6 +23,7 @@ use crate::parser::ParserContext; use crate::selector_parser::PseudoElement; use crate::stylist::Stylist; use style_traits::{CssStringWriter, CssWriter, KeywordsCollectFn, ParseError, SpecifiedValueInfo, StyleParseErrorKind, ToCss, TypedValue, ToTyped}; +use crate::derives::*; use crate::stylesheets::{CssRuleType, CssRuleTypes, Origin}; use crate::logical_geometry::{LogicalAxis, LogicalCorner, LogicalSide}; use crate::use_counters::UseCounters; @@ -1411,6 +1412,7 @@ pub mod style_structs { use super::longhands; use std::hash::{Hash, Hasher}; use crate::values::specified::color::ColorSchemeFlags; + use crate::derives::*; % for style_struct in data.active_style_structs(): % if style_struct.name == "Font": diff --git a/servo/components/style/properties_and_values/registry.rs b/servo/components/style/properties_and_values/registry.rs @@ -6,6 +6,7 @@ use super::rule::{Inherits, InitialValue, PropertyRuleName}; use super::syntax::Descriptor; +use crate::derives::*; use crate::selector_map::PrecomputedHashMap; use crate::stylesheets::UrlExtraData; use crate::Atom; diff --git a/servo/components/style/properties_and_values/rule.rs b/servo/components/style/properties_and_values/rule.rs @@ -15,6 +15,7 @@ use super::{ }, }; use crate::custom_properties::{Name as CustomPropertyName, SpecifiedValue}; +use crate::derives::*; use crate::error_reporting::ContextualParseError; use crate::parser::{Parse, ParserContext}; use crate::shared_lock::{SharedRwLockReadGuard, ToCssWithGuard}; diff --git a/servo/components/style/properties_and_values/syntax/data_type.rs b/servo/components/style/properties_and_values/syntax/data_type.rs @@ -5,6 +5,7 @@ //! Used for parsing and serializing component names from the syntax string. use super::{Component, ComponentName, Multiplier}; +use crate::derives::*; use std::fmt::{self, Debug, Write}; use style_traits::{CssWriter, ToCss}; diff --git a/servo/components/style/properties_and_values/syntax/mod.rs b/servo/components/style/properties_and_values/syntax/mod.rs @@ -9,6 +9,7 @@ use std::fmt::{self, Debug}; use std::{borrow::Cow, fmt::Write}; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::CustomIdent; use cssparser::{Parser as CSSParser, ParserInput as CSSParserInput}; diff --git a/servo/components/style/properties_and_values/value.rs b/servo/components/style/properties_and_values/value.rs @@ -12,6 +12,8 @@ use super::{ data_type::DataType, Component as SyntaxComponent, ComponentName, Descriptor, Multiplier, }, }; +use crate::custom_properties::ComputedValue as ComputedPropertyValue; +use crate::derives::*; use crate::properties; use crate::stylesheets::{CssRuleType, Origin, UrlExtraData}; use crate::values::{ @@ -19,7 +21,6 @@ use crate::values::{ computed::{self, ToComputedValue}, specified, CustomIdent, }; -use crate::custom_properties::ComputedValue as ComputedPropertyValue; use crate::{ dom::AttributeProvider, parser::{Parse, ParserContext}, diff --git a/servo/components/style/queries/condition.rs b/servo/components/style/queries/condition.rs @@ -9,6 +9,7 @@ use super::{FeatureFlags, FeatureType, QueryFeatureExpression}; use crate::custom_properties; +use crate::derives::*; use crate::stylesheets::CustomMediaEvaluator; use crate::values::{computed, AtomString, DashedIdent}; use crate::{error_reporting::ContextualParseError, parser::ParserContext, parser::Parse}; diff --git a/servo/components/style/queries/feature.rs b/servo/components/style/queries/feature.rs @@ -4,6 +4,7 @@ //! Query features. +use crate::derives::*; use crate::parser::ParserContext; use crate::values::computed::{self, CSSPixelLength, Ratio, Resolution}; use crate::Atom; diff --git a/servo/components/style/queries/feature_expression.rs b/servo/components/style/queries/feature_expression.rs @@ -7,6 +7,7 @@ use super::feature::{Evaluator, QueryFeatureDescription}; use super::feature::{FeatureFlags, KeywordDiscriminant}; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::str::{starts_with_ignore_ascii_case, string_as_ascii_lowercase}; use crate::values::computed::{self, Ratio, ToComputedValue}; diff --git a/servo/components/style/queries/values.rs b/servo/components/style/queries/values.rs @@ -4,6 +4,7 @@ //! Common feature values between media and container features. +use crate::derives::*; use app_units::Au; use euclid::default::Size2D; diff --git a/servo/components/style/rule_tree/level.rs b/servo/components/style/rule_tree/level.rs @@ -4,6 +4,7 @@ #![forbid(unsafe_code)] +use crate::derives::*; use crate::properties::Importance; use crate::shared_lock::{SharedRwLockReadGuard, StylesheetGuards}; use crate::stylesheets::Origin; diff --git a/servo/components/style/selector_map.rs b/servo/components/style/selector_map.rs @@ -7,6 +7,7 @@ use crate::applicable_declarations::{ApplicableDeclarationList, ScopeProximity}; use crate::context::QuirksMode; +use crate::derives::*; use crate::dom::TElement; use crate::rule_tree::CascadeLevel; use crate::selector_parser::SelectorImpl; diff --git a/servo/components/style/selector_parser.rs b/servo/components/style/selector_parser.rs @@ -6,6 +6,7 @@ #![deny(missing_docs)] +use crate::derives::*; use crate::stylesheets::{Namespaces, Origin, UrlExtraData}; use crate::values::serialize_atom_identifier; use crate::Atom; diff --git a/servo/components/style/servo/animation.rs b/servo/components/style/servo/animation.rs @@ -8,6 +8,7 @@ // compile it out so that people remember it exists. use crate::context::{CascadeInputs, SharedStyleContext}; +use crate::derives::*; use crate::dom::{OpaqueNode, TDocument, TElement, TNode}; use crate::properties::animated_properties::{AnimationValue, AnimationValueMap}; use crate::properties::longhands::animation_direction::computed_value::single_value::T as AnimationDirection; diff --git a/servo/components/style/servo/attr.rs b/servo/components/style/servo/attr.rs @@ -8,6 +8,7 @@ use super::shadow_parts::ShadowParts; use crate::color::{parsing::parse_color_keyword, AbsoluteColor}; +use crate::derives::*; use crate::properties::PropertyDeclarationBlock; use crate::shared_lock::Locked; use crate::str::str_join; diff --git a/servo/components/style/servo/media_queries.rs b/servo/components/style/servo/media_queries.rs @@ -7,6 +7,7 @@ use crate::color::AbsoluteColor; use crate::context::QuirksMode; use crate::custom_properties::CssEnvironment; +use crate::derives::*; use crate::font_metrics::FontMetrics; use crate::logical_geometry::WritingMode; use crate::media_queries::MediaType; diff --git a/servo/components/style/servo/selector_parser.rs b/servo/components/style/servo/selector_parser.rs @@ -8,6 +8,7 @@ use crate::attr::{AttrIdentifier, AttrValue}; use crate::computed_value_flags::ComputedValueFlags; +use crate::derives::*; use crate::dom::{OpaqueNode, TElement, TNode}; use crate::invalidation::element::document_state::InvalidationMatchingData; use crate::invalidation::element::element_wrapper::ElementSnapshot; diff --git a/servo/components/style/servo/shadow_parts.rs b/servo/components/style/servo/shadow_parts.rs @@ -2,6 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use crate::derives::*; use crate::values::AtomIdent; use crate::Atom; diff --git a/servo/components/style/servo/url.rs b/servo/components/style/servo/url.rs @@ -4,6 +4,7 @@ //! Common handling for the specified value CSS url() values. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::stylesheets::CorsMode; use crate::values::computed::{Context, ToComputedValue}; diff --git a/servo/components/style/shared_lock.rs b/servo/components/style/shared_lock.rs @@ -34,7 +34,7 @@ use to_shmem::{SharedMemoryBuilder, ToShmem}; /// used for objects stored in (read only) shared memory. Attempting to acquire /// write access to objects protected by a read only SharedRwLock will panic. #[derive(Clone)] -#[cfg_attr(feature = "servo", derive(MallocSizeOf))] +#[cfg_attr(feature = "servo", derive(crate::derives::MallocSizeOf))] pub struct SharedRwLock { #[cfg(feature = "servo")] #[cfg_attr(feature = "servo", ignore_malloc_size_of = "Arc")] diff --git a/servo/components/style/simple_buckets_map.rs b/servo/components/style/simple_buckets_map.rs @@ -2,6 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use crate::derives::*; use crate::selector_map::{MaybeCaseInsensitiveHashMap, PrecomputedHashMap}; use crate::{Atom, LocalName, ShrinkIfNeeded}; diff --git a/servo/components/style/stylesheet_set.rs b/servo/components/style/stylesheet_set.rs @@ -4,6 +4,7 @@ //! A centralized set of stylesheets for a document. +use crate::derives::*; use crate::dom::TElement; use crate::invalidation::stylesheets::{RuleChangeKind, StylesheetInvalidationSet}; use crate::media_queries::Device; diff --git a/servo/components/style/stylesheets/container_rule.rs b/servo/components/style/stylesheets/container_rule.rs @@ -7,6 +7,7 @@ //! [container]: https://drafts.csswg.org/css-contain-3/#container-rule use crate::computed_value_flags::ComputedValueFlags; +use crate::derives::*; use crate::dom::TElement; use crate::logical_geometry::{LogicalSize, WritingMode}; use crate::parser::ParserContext; diff --git a/servo/components/style/stylesheets/document_rule.rs b/servo/components/style/stylesheets/document_rule.rs @@ -6,6 +6,7 @@ //! initially in CSS Conditional Rules Module Level 3, @document has been postponed to the level 4. //! We implement the prefixed `@-moz-document`. +use crate::derives::*; use crate::media_queries::Device; use crate::parser::{Parse, ParserContext}; use crate::shared_lock::{DeepCloneWithLock, Locked}; diff --git a/servo/components/style/stylesheets/font_feature_values_rule.rs b/servo/components/style/stylesheets/font_feature_values_rule.rs @@ -6,6 +6,7 @@ //! //! [font-feature-values]: https://drafts.csswg.org/css-fonts-3/#at-font-feature-values-rule +use crate::derives::*; use crate::error_reporting::ContextualParseError; #[cfg(feature = "gecko")] use crate::gecko_bindings::bindings::Gecko_AppendFeatureValueHashEntry; diff --git a/servo/components/style/stylesheets/font_palette_values_rule.rs b/servo/components/style/stylesheets/font_palette_values_rule.rs @@ -6,6 +6,7 @@ //! //! [font-palette-values]: https://drafts.csswg.org/css-fonts/#font-palette-values +use crate::derives::*; use crate::error_reporting::ContextualParseError; #[cfg(feature = "gecko")] use crate::gecko_bindings::{ diff --git a/servo/components/style/stylesheets/keyframes_rule.rs b/servo/components/style/stylesheets/keyframes_rule.rs @@ -4,6 +4,7 @@ //! Keyframes: https://drafts.csswg.org/css-animations/#keyframes +use crate::derives::*; use crate::error_reporting::ContextualParseError; use crate::parser::ParserContext; use crate::properties::{ diff --git a/servo/components/style/stylesheets/layer_rule.rs b/servo/components/style/stylesheets/layer_rule.rs @@ -6,6 +6,7 @@ //! //! [layer]: https://drafts.csswg.org/css-cascade-5/#layering +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::shared_lock::{DeepCloneWithLock, Locked}; use crate::shared_lock::{SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard}; diff --git a/servo/components/style/stylesheets/margin_rule.rs b/servo/components/style/stylesheets/margin_rule.rs @@ -6,6 +6,7 @@ //! //! [margin]: https://drafts.csswg.org/css-page-3/#margin-boxes +use crate::derives::*; use crate::properties::PropertyDeclarationBlock; use crate::shared_lock::{DeepCloneWithLock, Locked}; use crate::shared_lock::{SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard}; diff --git a/servo/components/style/stylesheets/media_rule.rs b/servo/components/style/stylesheets/media_rule.rs @@ -6,6 +6,7 @@ //! //! [media]: https://drafts.csswg.org/css-conditional/#at-ruledef-media +use crate::derives::*; use crate::media_queries::MediaList; use crate::selector_map::{PrecomputedHashMap, PrecomputedHashSet}; use crate::shared_lock::{DeepCloneWithLock, Locked}; diff --git a/servo/components/style/stylesheets/mod.rs b/servo/components/style/stylesheets/mod.rs @@ -31,6 +31,7 @@ mod style_rule; mod stylesheet; pub mod supports_rule; +use crate::derives::*; #[cfg(feature = "gecko")] use crate::gecko_bindings::sugar::refptr::RefCounted; #[cfg(feature = "gecko")] diff --git a/servo/components/style/stylesheets/namespace_rule.rs b/servo/components/style/stylesheets/namespace_rule.rs @@ -4,6 +4,7 @@ //! The `@namespace` at-rule. +use crate::derives::*; use crate::shared_lock::{SharedRwLockReadGuard, ToCssWithGuard}; use crate::{Namespace, Prefix}; use cssparser::SourceLocation; diff --git a/servo/components/style/stylesheets/nested_declarations_rule.rs b/servo/components/style/stylesheets/nested_declarations_rule.rs @@ -5,6 +5,7 @@ //! A nested declarations rule. //! https://drafts.csswg.org/css-nesting-1/#nested-declarations-rule +use crate::derives::*; use crate::properties::PropertyDeclarationBlock; use crate::shared_lock::{ DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard, diff --git a/servo/components/style/stylesheets/origin.rs b/servo/components/style/stylesheets/origin.rs @@ -4,6 +4,7 @@ //! [CSS cascade origins](https://drafts.csswg.org/css-cascade/#cascading-origins). +use crate::derives::*; use std::marker::PhantomData; use std::ops::BitOrAssign; diff --git a/servo/components/style/stylesheets/page_rule.rs b/servo/components/style/stylesheets/page_rule.rs @@ -6,6 +6,7 @@ //! //! [page]: https://drafts.csswg.org/css2/page.html#page-box +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::properties::PropertyDeclarationBlock; use crate::shared_lock::{ diff --git a/servo/components/style/stylesheets/position_try_rule.rs b/servo/components/style/stylesheets/position_try_rule.rs @@ -8,6 +8,7 @@ use std::fmt::Write; +use crate::derives::*; use crate::properties::PropertyDeclarationBlock; use crate::shared_lock::{ DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard, diff --git a/servo/components/style/stylesheets/rule_list.rs b/servo/components/style/stylesheets/rule_list.rs @@ -4,6 +4,7 @@ //! A list of CSS rules. +use crate::derives::*; use crate::shared_lock::{DeepCloneWithLock, Locked}; use crate::shared_lock::{SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard}; use crate::stylesheets::loader::StylesheetLoader; diff --git a/servo/components/style/stylesheets/rule_parser.rs b/servo/components/style/stylesheets/rule_parser.rs @@ -6,6 +6,7 @@ use crate::counter_style::{parse_counter_style_body, parse_counter_style_name_definition}; use crate::custom_properties::parse_name as parse_custom_property_name; +use crate::derives::*; use crate::error_reporting::ContextualParseError; use crate::font_face::parse_font_face_block; use crate::media_queries::MediaList; diff --git a/servo/components/style/stylesheets/scope_rule.rs b/servo/components/style/stylesheets/scope_rule.rs @@ -7,6 +7,7 @@ //! [scope]: https://drafts.csswg.org/css-cascade-6/#scoped-styles use crate::applicable_declarations::ScopeProximity; +use crate::derives::*; use crate::dom::TElement; use crate::parser::ParserContext; use crate::selector_parser::{SelectorImpl, SelectorParser}; diff --git a/servo/components/style/stylesheets/starting_style_rule.rs b/servo/components/style/stylesheets/starting_style_rule.rs @@ -5,6 +5,7 @@ //! before-change style: the `@starting-style` rules. //! https://drafts.csswg.org/css-transitions-2/#defining-before-change-style +use crate::derives::*; use crate::shared_lock::{DeepCloneWithLock, Locked}; use crate::shared_lock::{SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard}; use crate::stylesheets::CssRules; diff --git a/servo/components/style/stylesheets/style_rule.rs b/servo/components/style/stylesheets/style_rule.rs @@ -4,6 +4,7 @@ //! A style rule. +use crate::derives::*; use crate::properties::PropertyDeclarationBlock; use crate::selector_parser::SelectorImpl; use crate::shared_lock::{ diff --git a/servo/components/style/stylesheets/stylesheet.rs b/servo/components/style/stylesheets/stylesheet.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::context::QuirksMode; +use crate::derives::*; use crate::error_reporting::{ContextualParseError, ParseErrorReporter}; use crate::media_queries::{Device, MediaList}; use crate::parser::ParserContext; diff --git a/servo/components/style/stylesheets/supports_rule.rs b/servo/components/style/stylesheets/supports_rule.rs @@ -4,6 +4,7 @@ //! [@supports rules](https://drafts.csswg.org/css-conditional-3/#at-supports) +use crate::derives::*; use crate::font_face::{FontFaceSourceFormatKeyword, FontFaceSourceTechFlags}; use crate::parser::ParserContext; use crate::properties::{PropertyDeclaration, PropertyId, SourcePropertyDeclaration}; diff --git a/servo/components/style/stylist.rs b/servo/components/style/stylist.rs @@ -10,6 +10,7 @@ use crate::applicable_declarations::{ use crate::computed_value_flags::ComputedValueFlags; use crate::context::{CascadeInputs, QuirksMode}; use crate::custom_properties::ComputedCustomProperties; +use crate::derives::*; use crate::dom::TElement; #[cfg(feature = "gecko")] use crate::gecko_bindings::structs::{ServoStyleSetSizes, StyleRuleInclusion}; diff --git a/servo/components/style/values/animated/transform.rs b/servo/components/style/values/animated/transform.rs @@ -8,6 +8,7 @@ use super::animate_multiplicative_factor; use super::{Animate, Procedure, ToAnimatedZero}; +use crate::derives::*; use crate::values::computed::transform::Rotate as ComputedRotate; use crate::values::computed::transform::Scale as ComputedScale; use crate::values::computed::transform::Transform as ComputedTransform; diff --git a/servo/components/style/values/computed/align.rs b/servo/components/style/values/computed/align.rs @@ -6,6 +6,7 @@ //! //! https://drafts.csswg.org/css-align/ +use crate::derives::*; use crate::values::computed::{Context, ToComputedValue}; use crate::values::specified; diff --git a/servo/components/style/values/computed/angle.rs b/servo/components/style/values/computed/angle.rs @@ -4,6 +4,7 @@ //! Computed angles. +use crate::derives::*; use crate::values::distance::{ComputeSquaredDistance, SquaredDistance}; use crate::values::CSSFloat; use crate::Zero; diff --git a/servo/components/style/values/computed/animation.rs b/servo/components/style/values/computed/animation.rs @@ -4,6 +4,7 @@ //! Computed values for properties related to animations and transitions +use crate::derives::*; use crate::values::computed::{Context, LengthPercentage, Time, ToComputedValue}; use crate::values::generics::animation as generics; use crate::values::specified::animation as specified; diff --git a/servo/components/style/values/computed/border.rs b/servo/components/style/values/computed/border.rs @@ -4,6 +4,7 @@ //! Computed types for CSS values related to borders. +use crate::derives::*; use crate::properties::{LogicalGroupId, LonghandId}; use crate::values::animated::{Context as AnimatedContext, ToAnimatedValue}; use crate::values::computed::length::{ diff --git a/servo/components/style/values/computed/box.rs b/servo/components/style/values/computed/box.rs @@ -4,6 +4,7 @@ //! Computed types for box properties. +use crate::derives::*; use crate::values::animated::{Animate, Procedure, ToAnimatedValue}; use crate::values::computed::length::{LengthPercentage, NonNegativeLength}; use crate::values::computed::{Context, Integer, Number, ToComputedValue}; diff --git a/servo/components/style/values/computed/font.rs b/servo/components/style/values/computed/font.rs @@ -4,6 +4,7 @@ //! Computed values for font properties +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::animated::ToAnimatedValue; use crate::values::computed::{ diff --git a/servo/components/style/values/computed/image.rs b/servo/components/style/values/computed/image.rs @@ -7,6 +7,7 @@ //! //! [image]: https://drafts.csswg.org/css-images/#image-values +use crate::derives::*; use crate::values::computed::percentage::Percentage; use crate::values::computed::position::Position; use crate::values::computed::url::ComputedUrl; diff --git a/servo/components/style/values/computed/length.rs b/servo/components/style/values/computed/length.rs @@ -5,6 +5,7 @@ //! `<length>` computed values, and related ones. use super::{Context, Number, ToComputedValue}; +use crate::derives::*; use crate::logical_geometry::PhysicalSide; use crate::values::animated::{Context as AnimatedContext, ToAnimatedValue}; use crate::values::computed::position::TryTacticAdjustment; diff --git a/servo/components/style/values/computed/length_percentage.rs b/servo/components/style/values/computed/length_percentage.rs @@ -25,6 +25,7 @@ //! our expectations. use super::{position::AnchorSide, Context, Length, Percentage, ToComputedValue}; +use crate::derives::*; #[cfg(feature = "gecko")] use crate::gecko_bindings::structs::{AnchorPosOffsetResolutionParams, GeckoFontMetrics}; use crate::logical_geometry::{PhysicalAxis, PhysicalSide}; diff --git a/servo/components/style/values/computed/mod.rs b/servo/components/style/values/computed/mod.rs @@ -17,6 +17,7 @@ use super::{CSSFloat, CSSInteger}; use crate::computed_value_flags::ComputedValueFlags; use crate::context::QuirksMode; use crate::custom_properties::ComputedCustomProperties; +use crate::derives::*; use crate::font_metrics::{FontMetrics, FontMetricsOrientation}; use crate::media_queries::Device; #[cfg(feature = "gecko")] diff --git a/servo/components/style/values/computed/motion.rs b/servo/components/style/values/computed/motion.rs @@ -4,6 +4,7 @@ //! Computed types for CSS values that are related to motion path. +use crate::derives::*; use crate::values::computed::basic_shape::BasicShape; use crate::values::computed::url::ComputedUrl; use crate::values::computed::{Angle, LengthPercentage, Position}; diff --git a/servo/components/style/values/computed/page.rs b/servo/components/style/values/computed/page.rs @@ -4,6 +4,7 @@ //! Computed @page at-rule properties and named-page style properties +use crate::derives::*; use crate::values::computed::length::NonNegativeLength; use crate::values::computed::{Context, ToComputedValue}; use crate::values::generics; diff --git a/servo/components/style/values/computed/percentage.rs b/servo/components/style/values/computed/percentage.rs @@ -4,6 +4,7 @@ //! Computed percentages. +use crate::derives::*; use crate::values::generics::{ClampToNonNegative, NonNegative}; use crate::values::specified::percentage::ToPercentage; use crate::values::{serialize_normalized_percentage, CSSFloat}; diff --git a/servo/components/style/values/computed/resolution.rs b/servo/components/style/values/computed/resolution.rs @@ -6,6 +6,7 @@ //! //! https://drafts.csswg.org/css-values/#resolution +use crate::derives::*; use crate::values::computed::{Context, ToComputedValue}; use crate::values::specified; use crate::values::CSSFloat; diff --git a/servo/components/style/values/computed/text.rs b/servo/components/style/values/computed/text.rs @@ -4,6 +4,7 @@ //! Computed types for text properties. +use crate::derives::*; use crate::values::computed::length::{Length, LengthPercentage}; use crate::values::generics::text::{ GenericHyphenateLimitChars, GenericInitialLetter, GenericTextDecorationInset, diff --git a/servo/components/style/values/computed/time.rs b/servo/components/style/values/computed/time.rs @@ -4,6 +4,7 @@ //! Computed time values. +use crate::derives::*; use crate::values::CSSFloat; use crate::Zero; use std::fmt::{self, Write}; diff --git a/servo/components/style/values/distance.rs b/servo/components/style/values/distance.rs @@ -4,6 +4,7 @@ //! Machinery to compute distances between animatable values. +use crate::derives::*; use app_units::Au; use euclid::default::Size2D; use std::iter::Sum; diff --git a/servo/components/style/values/generics/animation.rs b/servo/components/style/values/generics/animation.rs @@ -4,6 +4,7 @@ //! Generic values for properties related to animations and transitions. +use crate::derives::*; use crate::values::generics::length::GenericLengthPercentageOrAuto; use crate::values::specified::animation::{ScrollAxis, ScrollFunction, TimelineName}; use crate::Zero; diff --git a/servo/components/style/values/generics/background.rs b/servo/components/style/values/generics/background.rs @@ -4,6 +4,7 @@ //! Generic types for CSS values related to backgrounds. +use crate::derives::*; use crate::values::generics::length::{GenericLengthPercentageOrAuto, LengthPercentageOrAuto}; /// A generic value for the `background-size` property. diff --git a/servo/components/style/values/generics/basic_shape.rs b/servo/components/style/values/generics/basic_shape.rs @@ -5,6 +5,7 @@ //! CSS handling for the [`basic-shape`](https://drafts.csswg.org/css-shapes/#typedef-basic-shape) //! types that are generic over their `ToCss` implementations. +use crate::derives::*; use crate::values::animated::{lists, Animate, Procedure, ToAnimatedZero}; use crate::values::computed::Percentage; use crate::values::distance::{ComputeSquaredDistance, SquaredDistance}; diff --git a/servo/components/style/values/generics/border.rs b/servo/components/style/values/generics/border.rs @@ -4,6 +4,7 @@ //! Generic types for CSS values related to borders. +use crate::derives::*; use crate::values::generics::rect::Rect; use crate::values::generics::size::Size2D; use crate::Zero; diff --git a/servo/components/style/values/generics/box.rs b/servo/components/style/values/generics/box.rs @@ -4,6 +4,7 @@ //! Generic types for box properties. +use crate::derives::*; use crate::values::animated::ToAnimatedZero; use crate::Zero; use std::fmt::{self, Write}; diff --git a/servo/components/style/values/generics/calc.rs b/servo/components/style/values/generics/calc.rs @@ -6,6 +6,7 @@ //! //! [calc]: https://drafts.csswg.org/css-values/#calc-notation +use crate::derives::*; use crate::values::generics::length::GenericAnchorSizeFunction; use crate::values::generics::position::{GenericAnchorFunction, GenericAnchorSide}; use num_traits::Zero; diff --git a/servo/components/style/values/generics/color.rs b/servo/components/style/values/generics/color.rs @@ -5,6 +5,7 @@ //! Generic types for color properties. use crate::color::{mix::ColorInterpolationMethod, AbsoluteColor, ColorFunction}; +use crate::derives::*; use crate::values::{ computed::ToComputedValue, specified::percentage::ToPercentage, ParseError, Parser, }; diff --git a/servo/components/style/values/generics/column.rs b/servo/components/style/values/generics/column.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ //! Generic types for the column properties. +use crate::derives::*; /// A generic type for `column-count` values. #[derive( diff --git a/servo/components/style/values/generics/counters.rs b/servo/components/style/values/generics/counters.rs @@ -8,6 +8,7 @@ use crate::computed_values::list_style_type::T as ListStyleType; #[cfg(feature = "gecko")] use crate::counter_style::CounterStyle; +use crate::derives::*; use crate::values::specified::Attr; use crate::values::CustomIdent; use std::fmt::{self, Write}; diff --git a/servo/components/style/values/generics/easing.rs b/servo/components/style/values/generics/easing.rs @@ -5,6 +5,7 @@ //! Generic types for CSS Easing Functions. //! https://drafts.csswg.org/css-easing/#timing-functions +use crate::derives::*; use crate::parser::ParserContext; /// A generic easing function. diff --git a/servo/components/style/values/generics/effects.rs b/servo/components/style/values/generics/effects.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ //! Generic types for CSS values related to effects. +use crate::derives::*; use crate::values::generics::{NonNegative, ZeroToOne}; diff --git a/servo/components/style/values/generics/flex.rs b/servo/components/style/values/generics/flex.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ //! Generic types for CSS values related to flexbox. +use crate::derives::*; /// A generic value for the `flex-basis` property. #[derive( diff --git a/servo/components/style/values/generics/font.rs b/servo/components/style/values/generics/font.rs @@ -4,6 +4,7 @@ //! Generic types for font stuff. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::animated::ToAnimatedZero; use crate::{One, Zero}; diff --git a/servo/components/style/values/generics/grid.rs b/servo/components/style/values/generics/grid.rs @@ -5,6 +5,7 @@ //! Generic types for the handling of //! [grids](https://drafts.csswg.org/css-grid/). +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::specified; use crate::values::{CSSFloat, CustomIdent}; diff --git a/servo/components/style/values/generics/image.rs b/servo/components/style/values/generics/image.rs @@ -8,9 +8,10 @@ use crate::color::mix::ColorInterpolationMethod; use crate::custom_properties; +use crate::derives::*; +use crate::values::generics::NonNegative; use crate::values::generics::{color::GenericLightDark, position::PositionComponent, Optional}; use crate::values::serialize_atom_identifier; -use crate::values::generics::NonNegative; use crate::{Atom, Zero}; use servo_arc::Arc; use std::fmt::{self, Write}; diff --git a/servo/components/style/values/generics/length.rs b/servo/components/style/values/generics/length.rs @@ -4,6 +4,7 @@ //! Generic types for CSS values related to length. +use crate::derives::*; use crate::logical_geometry::PhysicalSide; use crate::parser::{Parse, ParserContext}; use crate::values::computed::position::TryTacticAdjustment; diff --git a/servo/components/style/values/generics/mod.rs b/servo/components/style/values/generics/mod.rs @@ -5,6 +5,7 @@ //! Generic types that share their serialization implementations //! for both specified and computed values. +use crate::derives::*; use crate::Zero; use std::ops::Add; diff --git a/servo/components/style/values/generics/motion.rs b/servo/components/style/values/generics/motion.rs @@ -4,6 +4,7 @@ //! Generic types for CSS Motion Path. +use crate::derives::*; use crate::values::animated::ToAnimatedZero; use crate::values::generics::position::{GenericPosition, GenericPositionOrAuto}; use crate::values::specified::motion::CoordBox; diff --git a/servo/components/style/values/generics/page.rs b/servo/components/style/values/generics/page.rs @@ -4,6 +4,7 @@ //! @page at-rule properties +use crate::derives::*; use crate::values::generics::NonNegative; use crate::values::specified::length::AbsoluteLength; diff --git a/servo/components/style/values/generics/position.rs b/servo/components/style/values/generics/position.rs @@ -11,6 +11,7 @@ use style_traits::CssWriter; use style_traits::SpecifiedValueInfo; use style_traits::ToCss; +use crate::derives::*; use crate::logical_geometry::PhysicalSide; use crate::values::animated::ToAnimatedZero; use crate::values::computed::position::TryTacticAdjustment; diff --git a/servo/components/style/values/generics/ratio.rs b/servo/components/style/values/generics/ratio.rs @@ -5,6 +5,7 @@ //! Generic types for CSS values related to <ratio>. //! https://drafts.csswg.org/css-values/#ratios +use crate::derives::*; use crate::{One, Zero}; use std::fmt::{self, Write}; use style_traits::{CssWriter, ToCss}; diff --git a/servo/components/style/values/generics/rect.rs b/servo/components/style/values/generics/rect.rs @@ -4,6 +4,7 @@ //! Generic types for CSS values that are composed of four sides. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use cssparser::Parser; use std::fmt::{self, Write}; diff --git a/servo/components/style/values/generics/size.rs b/servo/components/style/values/generics/size.rs @@ -4,6 +4,7 @@ //! Generic type for CSS properties that are composed by two dimensions. +use crate::derives::*; use crate::parser::ParserContext; use crate::Zero; use cssparser::Parser; diff --git a/servo/components/style/values/generics/svg.rs b/servo/components/style/values/generics/svg.rs @@ -4,6 +4,7 @@ //! Generic types for CSS values in SVG +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use cssparser::Parser; use style_traits::ParseError; diff --git a/servo/components/style/values/generics/text.rs b/servo/components/style/values/generics/text.rs @@ -4,6 +4,7 @@ //! Generic types for text properties. +use crate::derives::*; use crate::Zero; use std::fmt::{self, Write}; use style_traits::{CssWriter, ToCss}; diff --git a/servo/components/style/values/generics/transform.rs b/servo/components/style/values/generics/transform.rs @@ -4,6 +4,7 @@ //! Generic types for CSS values that are related to transformations. +use crate::derives::*; use crate::values::computed::length::Length as ComputedLength; use crate::values::computed::length::LengthPercentage as ComputedLengthPercentage; use crate::values::specified::angle::Angle as SpecifiedAngle; diff --git a/servo/components/style/values/generics/ui.rs b/servo/components/style/values/generics/ui.rs @@ -4,6 +4,7 @@ //! Generic values for UI properties. +use crate::derives::*; use crate::values::specified::ui::CursorKind; use std::fmt::{self, Write}; use style_traits::{CssWriter, ToCss}; diff --git a/servo/components/style/values/generics/url.rs b/servo/components/style/values/generics/url.rs @@ -4,6 +4,8 @@ //! Generic types for url properties. +use crate::derives::*; + /// An image url or none, used for example in list-style-image #[derive( Animate, diff --git a/servo/components/style/values/mod.rs b/servo/components/style/values/mod.rs @@ -8,6 +8,7 @@ #![deny(missing_docs)] +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::distance::{ComputeSquaredDistance, SquaredDistance}; use crate::Atom; diff --git a/servo/components/style/values/specified/align.rs b/servo/components/style/values/specified/align.rs @@ -6,6 +6,7 @@ //! //! https://drafts.csswg.org/css-align/ +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use cssparser::Parser; use std::fmt::{self, Write}; diff --git a/servo/components/style/values/specified/angle.rs b/servo/components/style/values/specified/angle.rs @@ -4,6 +4,7 @@ //! Specified angles. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::angle::Angle as ComputedAngle; use crate::values::computed::{Context, ToComputedValue}; diff --git a/servo/components/style/values/specified/animation.rs b/servo/components/style/values/specified/animation.rs @@ -4,6 +4,7 @@ //! Specified types for properties related to animations and transitions. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::properties::{NonCustomPropertyId, PropertyId, ShorthandId}; use crate::values::generics::animation as generics; diff --git a/servo/components/style/values/specified/background.rs b/servo/components/style/values/specified/background.rs @@ -4,6 +4,7 @@ //! Specified types for CSS values related to backgrounds. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::background::BackgroundSize as GenericBackgroundSize; use crate::values::specified::length::{ diff --git a/servo/components/style/values/specified/basic_shape.rs b/servo/components/style/values/specified/basic_shape.rs @@ -7,6 +7,7 @@ //! //! [basic-shape]: https://drafts.csswg.org/css-shapes/#typedef-basic-shape +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::basic_shape::InsetRect as ComputedInsetRect; use crate::values::computed::{ diff --git a/servo/components/style/values/specified/border.rs b/servo/components/style/values/specified/border.rs @@ -4,6 +4,7 @@ //! Specified types for CSS values related to borders. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::border::BorderSideWidth as ComputedBorderSideWidth; use crate::values::computed::{Context, ToComputedValue}; diff --git a/servo/components/style/values/specified/box.rs b/servo/components/style/values/specified/box.rs @@ -4,6 +4,7 @@ //! Specified types for box properties. +use crate::derives::*; pub use crate::logical_geometry::WritingModeProperty; use crate::parser::{Parse, ParserContext}; use crate::properties::{LonghandId, PropertyDeclarationId, PropertyId}; diff --git a/servo/components/style/values/specified/calc.rs b/servo/components/style/values/specified/calc.rs @@ -7,6 +7,7 @@ //! [calc]: https://drafts.csswg.org/css-values/#calc-notation use crate::color::parsing::ChannelKeyword; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::calc::{ self as generic, CalcNodeLeaf, CalcUnits, MinMaxOp, ModRemOp, PositivePercentageBasis, diff --git a/servo/components/style/values/specified/color.rs b/servo/components/style/values/specified/color.rs @@ -7,6 +7,7 @@ use super::AllowQuirks; use crate::color::mix::ColorInterpolationMethod; use crate::color::{parsing, AbsoluteColor, ColorFunction, ColorSpace}; +use crate::derives::*; use crate::media_queries::Device; use crate::parser::{Parse, ParserContext}; use crate::values::computed::{Color as ComputedColor, Context, ToComputedValue}; diff --git a/servo/components/style/values/specified/effects.rs b/servo/components/style/values/specified/effects.rs @@ -4,6 +4,7 @@ //! Specified types for CSS values related to effects. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::effects::BoxShadow as ComputedBoxShadow; use crate::values::computed::effects::SimpleShadow as ComputedSimpleShadow; diff --git a/servo/components/style/values/specified/font.rs b/servo/components/style/values/specified/font.rs @@ -5,6 +5,7 @@ //! Specified values for font properties use crate::context::QuirksMode; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::font::{FamilyName, FontFamilyList, SingleFontFamily}; use crate::values::computed::Percentage as ComputedPercentage; diff --git a/servo/components/style/values/specified/grid.rs b/servo/components/style/values/specified/grid.rs @@ -5,6 +5,7 @@ //! CSS handling for the computed value of //! [grids](https://drafts.csswg.org/css-grid/) +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::grid::{GridTemplateComponent, ImplicitGridTracks, RepeatCount}; use crate::values::generics::grid::{LineNameList, LineNameListValue, NameRepeat, TrackBreadth}; diff --git a/servo/components/style/values/specified/image.rs b/servo/components/style/values/specified/image.rs @@ -8,6 +8,7 @@ //! [image]: https://drafts.csswg.org/css-images/#image-values use crate::color::mix::ColorInterpolationMethod; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::stylesheets::CorsMode; use crate::values::generics::color::{ColorMixFlags, GenericLightDark}; diff --git a/servo/components/style/values/specified/length.rs b/servo/components/style/values/specified/length.rs @@ -8,6 +8,7 @@ use super::{AllowQuirks, Number, Percentage, ToComputedValue}; use crate::computed_value_flags::ComputedValueFlags; +use crate::derives::*; use crate::font_metrics::{FontMetrics, FontMetricsOrientation}; #[cfg(feature = "gecko")] use crate::gecko_bindings::structs::GeckoFontMetrics; diff --git a/servo/components/style/values/specified/list.rs b/servo/components/style/values/specified/list.rs @@ -6,6 +6,7 @@ #[cfg(feature = "gecko")] use crate::counter_style::{CounterStyle, CounterStyleParsingFlags}; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; #[cfg(feature = "servo")] use crate::properties::longhands::list_style_type::SpecifiedValue as ListStyleType; diff --git a/servo/components/style/values/specified/mod.rs b/servo/components/style/values/specified/mod.rs @@ -15,6 +15,7 @@ use super::generics::transform::IsParallelTo; use super::generics::{self, GreaterThanOrEqualToOne, NonNegative}; use super::{CSSFloat, CSSInteger}; use crate::context::QuirksMode; +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::specified::calc::CalcNode; use crate::values::{serialize_atom_identifier, serialize_number, AtomString}; diff --git a/servo/components/style/values/specified/motion.rs b/servo/components/style/values/specified/motion.rs @@ -4,6 +4,7 @@ //! Specified types for CSS values that are related to motion path. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::motion::OffsetRotate as ComputedOffsetRotate; use crate::values::computed::{Context, ToComputedValue}; diff --git a/servo/components/style/values/specified/outline.rs b/servo/components/style/values/specified/outline.rs @@ -4,6 +4,7 @@ //! Specified values for outline properties +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::specified::BorderStyle; use cssparser::Parser; diff --git a/servo/components/style/values/specified/page.rs b/servo/components/style/values/specified/page.rs @@ -4,6 +4,7 @@ //! Specified @page at-rule properties and named-page style properties +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::size::Size2D; use crate::values::specified::length::NonNegativeLength; diff --git a/servo/components/style/values/specified/percentage.rs b/servo/components/style/values/specified/percentage.rs @@ -4,6 +4,7 @@ //! Specified percentages. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::percentage::Percentage as ComputedPercentage; use crate::values::computed::{Context, ToComputedValue}; diff --git a/servo/components/style/values/specified/position.rs b/servo/components/style/values/specified/position.rs @@ -7,6 +7,7 @@ //! //! [position]: https://drafts.csswg.org/css-backgrounds-3/#position +use crate::derives::*; use crate::logical_geometry::{LogicalAxis, LogicalSide, PhysicalSide, WritingMode}; use crate::parser::{Parse, ParserContext}; use crate::selector_map::PrecomputedHashMap; diff --git a/servo/components/style/values/specified/resolution.rs b/servo/components/style/values/specified/resolution.rs @@ -6,6 +6,7 @@ //! //! https://drafts.csswg.org/css-values/#resolution +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::specified::CalcNode; use crate::values::CSSFloat; diff --git a/servo/components/style/values/specified/svg.rs b/servo/components/style/values/specified/svg.rs @@ -4,6 +4,7 @@ //! Specified types for SVG properties. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::svg as generic; use crate::values::specified::color::Color; diff --git a/servo/components/style/values/specified/svg_path.rs b/servo/components/style/values/specified/svg_path.rs @@ -4,6 +4,7 @@ //! Specified types for SVG Path. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::animated::{lists, Animate, Procedure}; use crate::values::distance::{ComputeSquaredDistance, SquaredDistance}; diff --git a/servo/components/style/values/specified/table.rs b/servo/components/style/values/specified/table.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ //! Specified types for CSS values related to tables. +use crate::derives::*; /// Specified values for the `caption-side` property. /// diff --git a/servo/components/style/values/specified/text.rs b/servo/components/style/values/specified/text.rs @@ -4,6 +4,7 @@ //! Specified types for text properties. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::properties::longhands::writing_mode::computed_value::T as SpecifiedWritingMode; use crate::values::computed; diff --git a/servo/components/style/values/specified/time.rs b/servo/components/style/values/specified/time.rs @@ -4,6 +4,7 @@ //! Specified time values. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::time::Time as ComputedTime; use crate::values::computed::{Context, ToComputedValue}; diff --git a/servo/components/style/values/specified/transform.rs b/servo/components/style/values/specified/transform.rs @@ -4,6 +4,7 @@ //! Specified types for CSS values that are related to transformations. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::computed::{Context, LengthPercentage as ComputedLengthPercentage}; use crate::values::computed::{Percentage as ComputedPercentage, ToComputedValue}; diff --git a/servo/components/style/values/specified/ui.rs b/servo/components/style/values/specified/ui.rs @@ -4,6 +4,7 @@ //! Specified types for UI properties. +use crate::derives::*; use crate::parser::{Parse, ParserContext}; use crate::values::generics::ui as generics; use crate::values::specified::color::Color;