style: Make border-spacing serialization consistent, and move it to precomputed_type.

This commit is contained in:
Emilio Cobos Álvarez 2017-09-15 19:29:34 +02:00
parent f9c06d7932
commit 2ac1327e4b
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
21 changed files with 200 additions and 219 deletions

View file

@ -4,12 +4,15 @@
//! Computed types for CSS values related to borders.
use app_units::Au;
use values::animated::ToAnimatedZero;
use values::computed::{Number, NumberOrPercentage};
use values::computed::length::LengthOrPercentage;
use values::computed::length::{LengthOrPercentage, NonNegativeLength};
use values::generics::border::BorderCornerRadius as GenericBorderCornerRadius;
use values::generics::border::BorderImageSideWidth as GenericBorderImageSideWidth;
use values::generics::border::BorderImageSlice as GenericBorderImageSlice;
use values::generics::border::BorderRadius as GenericBorderRadius;
use values::generics::border::BorderSpacing as GenericBorderSpacing;
use values::generics::rect::Rect;
use values::generics::size::Size;
@ -26,7 +29,10 @@ pub type BorderImageSlice = GenericBorderImageSlice<NumberOrPercentage>;
pub type BorderRadius = GenericBorderRadius<LengthOrPercentage>;
/// A computed value for the `border-*-radius` longhand properties.
pub type BorderCornerRadius = Size<LengthOrPercentage>;
pub type BorderCornerRadius = GenericBorderCornerRadius<LengthOrPercentage>;
/// A computed value for the `border-spacing` longhand property.
pub type BorderSpacing = GenericBorderSpacing<NonNegativeLength>;
impl BorderImageSideWidth {
/// Returns `1`.
@ -36,6 +42,38 @@ impl BorderImageSideWidth {
}
}
impl BorderSpacing {
/// Returns `0 0`.
pub fn zero() -> Self {
GenericBorderSpacing(Size::new(NonNegativeLength::zero(), NonNegativeLength::zero()))
}
/// Returns the horizontal spacing.
pub fn horizontal(&self) -> Au {
Au::from(*self.0.width())
}
/// Returns the vertical spacing.
pub fn vertical(&self) -> Au {
Au::from(*self.0.height())
}
}
impl BorderCornerRadius {
/// Returns `0 0`.
pub fn zero() -> Self {
GenericBorderCornerRadius(Size::new(LengthOrPercentage::zero(), LengthOrPercentage::zero()))
}
}
impl ToAnimatedZero for BorderSpacing {
#[inline]
fn to_animated_zero(&self) -> Result<Self, ()> {
// FIXME(emilio): Why?
Err(())
}
}
impl ToAnimatedZero for BorderCornerRadius {
#[inline]
fn to_animated_zero(&self) -> Result<Self, ()> {