diff --git a/components/style/values/generics/image.rs b/components/style/values/generics/image.rs index a0b2cb1b281..578eb1cf055 100644 --- a/components/style/values/generics/image.rs +++ b/components/style/values/generics/image.rs @@ -11,13 +11,12 @@ use cssparser::serialize_identifier; use custom_properties; use std::fmt; use style_traits::ToCss; -use values::computed::{Context, ToComputedValue}; /// An [image]. /// /// [image]: https://drafts.csswg.org/css-images/#image-values -#[derive(Clone, PartialEq)] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] +#[derive(Clone, PartialEq, ToComputedValue)] pub enum Image { /// A `` image. Url(ImageUrl), @@ -34,43 +33,6 @@ pub enum Image { PaintWorklet(PaintWorklet), } -// FIXME(nox): Implement TCV for Box and derive this. -impl ToComputedValue for Image { - type ComputedValue = Image<::ComputedValue, - ::ComputedValue, - ::ComputedValue>; - - #[inline] - fn to_computed_value(&self, context: &Context) -> Self::ComputedValue { - match *self { - Image::Url(ref url) => Image::Url(url.to_computed_value(context)), - Image::Gradient(ref gradient) => - Image::Gradient(Box::new(gradient.to_computed_value(context))), - Image::Rect(ref rect) => Image::Rect(Box::new(rect.to_computed_value(context))), - Image::Element(ref atom) => Image::Element(atom.to_computed_value(context)), - #[cfg(feature = "servo")] - Image::PaintWorklet(ref worklet) => Image::PaintWorklet(worklet.to_computed_value(context)), - } - } - - #[inline] - fn from_computed_value(computed: &Self::ComputedValue) -> Self { - match *computed { - Image::Url(ref url) => Image::Url(ImageUrl::from_computed_value(url)), - Image::Gradient(ref boxed_gradient) => - Image::Gradient(Box::new(Gradient::from_computed_value(&*boxed_gradient))), - Image::Rect(ref boxed_rect) => - Image::Rect(Box::new(MozImageRect::from_computed_value(&*boxed_rect))), - Image::Element(ref atom) => Image::Element(Atom::from_computed_value(atom)), - #[cfg(feature = "servo")] - Image::PaintWorklet(ref worklet) => - Image::PaintWorklet(PaintWorklet::from_computed_value(worklet)), - } - } -} - /// A CSS gradient. /// https://drafts.csswg.org/css-images/#gradients #[cfg_attr(feature = "servo", derive(HeapSizeOf))]