mirror of
https://github.com/servo/servo.git
synced 2025-08-07 22:45:34 +01:00
Derive the most trivial ToCss implementations 🌋
For now, all variants get serialised as the space-separated serialisations of their fields. Unit variants are not supported.
This commit is contained in:
parent
6d6f03974d
commit
c4f1d647a0
18 changed files with 113 additions and 263 deletions
|
@ -53,7 +53,7 @@ pub enum ShapeSource<BasicShape, ReferenceBox> {
|
|||
|
||||
#[allow(missing_docs)]
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Debug, PartialEq, ToComputedValue)]
|
||||
#[derive(Clone, Debug, PartialEq, ToComputedValue, ToCss)]
|
||||
pub enum BasicShape<H, V, LengthOrPercentage> {
|
||||
Inset(InsetRect<LengthOrPercentage>),
|
||||
Circle(Circle<H, V, LengthOrPercentage>),
|
||||
|
@ -153,23 +153,6 @@ impl ToCss for GeometryBox {
|
|||
}
|
||||
}
|
||||
|
||||
impl<H, V, L> ToCss for BasicShape<H, V, L>
|
||||
where H: ToCss,
|
||||
V: ToCss,
|
||||
L: PartialEq + ToCss,
|
||||
Circle<H, V, L>: ToCss,
|
||||
Ellipse<H, V, L>: ToCss,
|
||||
{
|
||||
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
||||
match *self {
|
||||
BasicShape::Inset(ref rect) => rect.to_css(dest),
|
||||
BasicShape::Circle(ref circle) => circle.to_css(dest),
|
||||
BasicShape::Ellipse(ref ellipse) => ellipse.to_css(dest),
|
||||
BasicShape::Polygon(ref polygon) => polygon.to_css(dest),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<L> ToCss for InsetRect<L>
|
||||
where L: ToCss + PartialEq
|
||||
{
|
||||
|
|
|
@ -108,8 +108,8 @@ impl ComputedValueAsSpecified for ShapeExtent {}
|
|||
|
||||
/// A gradient item.
|
||||
/// https://drafts.csswg.org/css-images-4/#color-stop-syntax
|
||||
#[derive(Clone, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue)]
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue, ToCss)]
|
||||
pub enum GradientItem<Color, LengthOrPercentage> {
|
||||
/// A color stop.
|
||||
ColorStop(ColorStop<Color, LengthOrPercentage>),
|
||||
|
@ -288,17 +288,6 @@ impl<L, LoP> ToCss for EndingShape<L, LoP>
|
|||
}
|
||||
}
|
||||
|
||||
impl<C, L> ToCss for GradientItem<C, L>
|
||||
where C: ToCss, L: ToCss,
|
||||
{
|
||||
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
|
||||
match *self {
|
||||
GradientItem::ColorStop(ref stop) => stop.to_css(dest),
|
||||
GradientItem::InterpolationHint(ref hint) => hint.to_css(dest),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<C, L> fmt::Debug for ColorStop<C, L>
|
||||
where C: fmt::Debug, L: fmt::Debug,
|
||||
{
|
||||
|
|
|
@ -4,12 +4,9 @@
|
|||
|
||||
//! Generic types for CSS values that are related to transformations.
|
||||
|
||||
use std::fmt;
|
||||
use style_traits::ToCss;
|
||||
|
||||
/// A generic transform origin.
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue)]
|
||||
#[derive(Clone, Copy, Debug, HasViewportPercentage, PartialEq, ToComputedValue, ToCss)]
|
||||
pub struct TransformOrigin<H, V, Depth> {
|
||||
/// The horizontal origin.
|
||||
pub horizontal: H,
|
||||
|
@ -29,17 +26,3 @@ impl<H, V, D> TransformOrigin<H, V, D> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<H, V, D> ToCss for TransformOrigin<H, V, D>
|
||||
where H: ToCss, V: ToCss, D: ToCss,
|
||||
{
|
||||
fn to_css<W>(&self, dest: &mut W) -> fmt::Result
|
||||
where W: fmt::Write,
|
||||
{
|
||||
self.horizontal.to_css(dest)?;
|
||||
dest.write_str(" ")?;
|
||||
self.vertical.to_css(dest)?;
|
||||
dest.write_str(" ")?;
|
||||
self.depth.to_css(dest)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue