Skip to content

Commit

Permalink
Auto merge of #17508 - servo:derive-all-the-things, r=emilio
Browse files Browse the repository at this point in the history
Use generics for SimpleShadow

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17508)
<!-- Reviewable:end -->
  • Loading branch information
bors-servo committed Jun 24, 2017
2 parents d58d1dd + 81a01f6 commit 946c9ae
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 45 deletions.
17 changes: 2 additions & 15 deletions components/style/values/animated/effects.rs
Expand Up @@ -16,6 +16,7 @@ use values::computed::effects::SimpleShadow as ComputedSimpleShadow;
use values::computed::length::Length;
use values::generics::effects::Filter as GenericFilter;
use values::generics::effects::FilterList as GenericFilterList;
use values::generics::effects::SimpleShadow as GenericSimpleShadow;

/// An animated value for the `filter` property.
pub type FilterList = GenericFilterList<Filter>;
Expand All @@ -29,21 +30,7 @@ pub type Filter = GenericFilter<Angle, Number, Length, SimpleShadow>;
pub type Filter = GenericFilter<Angle, Number, Length, Impossible>;

/// An animated value for the `drop-shadow()` filter.
///
/// Contrary to the canonical order from the spec, the color is serialised
/// first, like in Gecko and Webkit.
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, PartialEq)]
pub struct SimpleShadow {
/// Color.
pub color: IntermediateColor,
/// Horizontal radius.
pub horizontal: Length,
/// Vertical radius.
pub vertical: Length,
/// Blur radius.
pub blur: Length,
}
pub type SimpleShadow = GenericSimpleShadow<IntermediateColor, Length, Length>;

#[cfg(feature = "gecko")]
impl From<ComputedFilterList> for FilterList {
Expand Down
17 changes: 2 additions & 15 deletions components/style/values/computed/effects.rs
Expand Up @@ -11,6 +11,7 @@ use values::computed::color::Color;
use values::computed::length::Length;
use values::generics::effects::Filter as GenericFilter;
use values::generics::effects::FilterList as GenericFilterList;
use values::generics::effects::SimpleShadow as GenericSimpleShadow;

/// A computed value for the `filter` property.
pub type FilterList = GenericFilterList<Filter>;
Expand All @@ -24,21 +25,7 @@ pub type Filter = GenericFilter<Angle, Number, Length, SimpleShadow>;
pub type Filter = GenericFilter<Angle, Number, Length, Impossible>;

/// A computed value for the `drop-shadow()` filter.
///
/// Contrary to the canonical order from the spec, the color is serialised
/// first, like in Gecko and Webkit.
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, PartialEq, ToCss)]
pub struct SimpleShadow {
/// Color.
pub color: Color,
/// Horizontal radius.
pub horizontal: Length,
/// Vertical radius.
pub vertical: Length,
/// Blur radius.
pub blur: Length,
}
pub type SimpleShadow = GenericSimpleShadow<Color, Length, Length>;

impl FilterList {
/// Returns the resulting opacity of this filter pipeline.
Expand Down
17 changes: 17 additions & 0 deletions components/style/values/generics/effects.rs
Expand Up @@ -55,6 +55,23 @@ pub enum Filter<Angle, Factor, Length, DropShadow> {
Url(SpecifiedUrl),
}

/// A generic value for the `drop-shadow()` filter and the `text-shadow` property.
///
/// Contrary to the canonical order from the spec, the color is serialised
/// first, like in Gecko and Webkit.
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, HasViewportPercentage, PartialEq, ToCss)]
pub struct SimpleShadow<Color, SizeLength, ShapeLength> {
/// Color.
pub color: Color,
/// Horizontal radius.
pub horizontal: SizeLength,
/// Vertical radius.
pub vertical: SizeLength,
/// Blur radius.
pub blur: ShapeLength,
}

impl<F> FilterList<F> {
/// Returns `none`.
#[inline]
Expand Down
17 changes: 2 additions & 15 deletions components/style/values/specified/effects.rs
Expand Up @@ -13,6 +13,7 @@ use values::computed::{Context, Number as ComputedNumber, ToComputedValue};
use values::computed::effects::SimpleShadow as ComputedSimpleShadow;
use values::generics::effects::Filter as GenericFilter;
use values::generics::effects::FilterList as GenericFilterList;
use values::generics::effects::SimpleShadow as GenericSimpleShadow;
use values::specified::{Angle, Percentage};
use values::specified::color::Color;
use values::specified::length::Length;
Expand Down Expand Up @@ -43,21 +44,7 @@ pub enum Factor {
}

/// A specified value for the `drop-shadow()` filter.
///
/// Contrary to the canonical order from the spec, the color is serialised
/// first, like in Gecko's computed values and in all Webkit's values.
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, HasViewportPercentage, PartialEq, ToCss)]
pub struct SimpleShadow {
/// Color.
pub color: Option<Color>,
/// Horizontal radius.
pub horizontal: Length,
/// Vertical radius.
pub vertical: Length,
/// Blur radius.
pub blur: Option<Length>,
}
pub type SimpleShadow = GenericSimpleShadow<Option<Color>, Length, Option<Length>>;

impl Parse for FilterList {
#[inline]
Expand Down

0 comments on commit 946c9ae

Please sign in to comment.