From 2074e8902a6c1a696b29035c51b664b060d63bc4 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Thu, 8 Mar 2018 11:19:05 +0100 Subject: [PATCH] Derive ToCss for SVGStrokeDashArray --- components/style/values/generics/svg.rs | 36 ++++--------------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/components/style/values/generics/svg.rs b/components/style/values/generics/svg.rs index f1c8278ee6e..6d9928ec1af 100644 --- a/components/style/values/generics/svg.rs +++ b/components/style/values/generics/svg.rs @@ -6,8 +6,7 @@ use cssparser::Parser; use parser::{Parse, ParserContext}; -use std::fmt::{self, Write}; -use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss}; +use style_traits::{ParseError, StyleParseErrorKind}; use values::{Either, None_}; use values::computed::NumberOrPercentage; use values::computed::length::LengthOrPercentage; @@ -199,41 +198,16 @@ pub enum SVGLength { } /// Generic value for stroke-dasharray. -#[derive(Clone, ComputeSquaredDistance, Debug, MallocSizeOf, PartialEq, ToAnimatedValue, - ToComputedValue)] +#[derive(Clone, ComputeSquaredDistance, Debug, MallocSizeOf, PartialEq)] +#[derive(ToAnimatedValue, ToComputedValue, ToCss)] pub enum SVGStrokeDashArray { /// `[ | | ]#` - Values(Vec), + #[css(comma)] + Values(#[css(if_empty = "none", iterable)] Vec), /// `context-value` ContextValue, } -impl ToCss for SVGStrokeDashArray where LengthType: ToCss { - fn to_css(&self, dest: &mut CssWriter) -> fmt::Result - where - W: Write, - { - match self { - &SVGStrokeDashArray::Values(ref values) => { - let mut iter = values.iter(); - if let Some(first) = iter.next() { - first.to_css(dest)?; - for item in iter { - dest.write_str(", ")?; - item.to_css(dest)?; - } - Ok(()) - } else { - dest.write_str("none") - } - } - &SVGStrokeDashArray::ContextValue => { - dest.write_str("context-value") - } - } - } -} - /// An SVG opacity value accepts `context-{fill,stroke}-opacity` in /// addition to opacity value. #[derive(Clone, ComputeSquaredDistance, Copy, Debug, MallocSizeOf)]