Derive Animate for BackgroundSize<L>

This commit is contained in:
Anthony Ramine 2017-08-26 16:39:59 +02:00
parent 318d8696e5
commit b543b17cf0
2 changed files with 5 additions and 19 deletions

View file

@ -6,7 +6,7 @@
use properties::animated_properties::RepeatableListAnimatable; use properties::animated_properties::RepeatableListAnimatable;
use properties::longhands::background_size::computed_value::T as BackgroundSizeList; use properties::longhands::background_size::computed_value::T as BackgroundSizeList;
use values::animated::{Animate, Procedure, ToAnimatedValue, ToAnimatedZero}; use values::animated::{ToAnimatedValue, ToAnimatedZero};
use values::computed::length::LengthOrPercentageOrAuto; use values::computed::length::LengthOrPercentageOrAuto;
use values::generics::background::BackgroundSize as GenericBackgroundSize; use values::generics::background::BackgroundSize as GenericBackgroundSize;
@ -15,23 +15,6 @@ pub type BackgroundSize = GenericBackgroundSize<LengthOrPercentageOrAuto>;
impl RepeatableListAnimatable for BackgroundSize {} impl RepeatableListAnimatable for BackgroundSize {}
impl Animate for BackgroundSize {
fn animate(&self, other: &Self, procedure: Procedure) -> Result<Self, ()> {
match (self, other) {
(
&GenericBackgroundSize::Explicit { width: self_width, height: self_height },
&GenericBackgroundSize::Explicit { width: other_width, height: other_height },
) => {
Ok(GenericBackgroundSize::Explicit {
width: self_width.animate(&other_width, procedure)?,
height: self_height.animate(&other_height, procedure)?,
})
}
_ => Err(()),
}
}
}
impl ToAnimatedZero for BackgroundSize { impl ToAnimatedZero for BackgroundSize {
#[inline] #[inline]
fn to_animated_zero(&self) -> Result<Self, ()> { Err(()) } fn to_animated_zero(&self) -> Result<Self, ()> { Err(()) }

View file

@ -5,8 +5,9 @@
//! Generic types for CSS values related to backgrounds. //! Generic types for CSS values related to backgrounds.
/// A generic value for the `background-size` property. /// A generic value for the `background-size` property.
#[derive(Clone, ComputeSquaredDistance, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue, ToCss)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))] #[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Animate, Clone, ComputeSquaredDistance, Copy, Debug)]
#[derive(HasViewportPercentage, PartialEq, ToComputedValue, ToCss)]
pub enum BackgroundSize<LengthOrPercentageOrAuto> { pub enum BackgroundSize<LengthOrPercentageOrAuto> {
/// `<width> <height>` /// `<width> <height>`
Explicit { Explicit {
@ -16,8 +17,10 @@ pub enum BackgroundSize<LengthOrPercentageOrAuto> {
height: LengthOrPercentageOrAuto height: LengthOrPercentageOrAuto
}, },
/// `cover` /// `cover`
#[animation(error)]
Cover, Cover,
/// `contain` /// `contain`
#[animation(error)]
Contain, Contain,
} }