Introduce #[css(function)] for #[derive(ToCss)]

Any variant with this attribute gets serialised as a CSS function,
using the variant name as the function name.
This commit is contained in:
Anthony Ramine 2017-06-08 09:36:11 +02:00
parent fd1ab75af9
commit 43a5257a0c
7 changed files with 66 additions and 66 deletions

View file

@ -5,15 +5,13 @@
//! Generic types for legacy Gecko-only properties that should probably be
//! unshipped at some point in the future.
use std::fmt;
use style_traits::ToCss;
/// A generic value for scroll snap points.
#[derive(Clone, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue)]
#[derive(Clone, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue, ToCss)]
pub enum ScrollSnapPoint<LengthOrPercentage> {
/// `none`
None,
/// `repeat(<length-or-percentage>)`
#[css(function)]
Repeat(LengthOrPercentage)
}
@ -33,22 +31,3 @@ impl<L> ScrollSnapPoint<L> {
}
}
}
impl<L> ToCss for ScrollSnapPoint<L>
where
L: ToCss,
{
fn to_css<W>(&self, dest: &mut W) -> fmt::Result
where
W: fmt::Write,
{
match *self {
ScrollSnapPoint::None => dest.write_str("none"),
ScrollSnapPoint::Repeat(ref length) => {
dest.write_str("repeat(")?;
length.to_css(dest)?;
dest.write_str(")")
},
}
}
}