style: Use derive for -x-span.

This commit is contained in:
Emilio Cobos Álvarez 2017-09-09 13:18:50 +02:00
parent 156b371376
commit b9f5388635
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
2 changed files with 24 additions and 17 deletions

View file

@ -4,6 +4,24 @@
//! Various macro helpers. //! Various macro helpers.
macro_rules! trivial_to_computed_value {
($name: ident) => {
impl $crate::values::computed::ToComputedValue for $name {
type ComputedValue = $name;
fn to_computed_value(&self, _: &$crate::values::computed::Context) -> Self {
self.clone()
}
fn from_computed_value(other: &Self) -> Self {
other.clone()
}
}
}
}
trivial_to_computed_value!(i32);
/// A macro to parse an identifier, or return an `UnexpectedIndent` error /// A macro to parse an identifier, or return an `UnexpectedIndent` error
/// otherwise. /// otherwise.
/// ///
@ -76,17 +94,7 @@ macro_rules! add_impls_for_keyword_enum {
} }
} }
impl $crate::values::computed::ToComputedValue for $name { trivial_to_computed_value!($name);
type ComputedValue = $name;
fn to_computed_value(&self, _: &$crate::values::computed::Context) -> Self {
self.clone()
}
fn from_computed_value(other: &Self) -> Self {
other.clone()
}
}
}; };
} }

View file

@ -14,15 +14,12 @@ ${helpers.single_keyword("table-layout", "auto fixed",
spec="Internal-only (for `<col span>` pres attr)" spec="Internal-only (for `<col span>` pres attr)"
animation_value_type="none" animation_value_type="none"
internal="True"> internal="True">
use values::computed::ComputedValueAsSpecified;
impl ComputedValueAsSpecified for SpecifiedValue {}
pub type SpecifiedValue = computed_value::T; pub type SpecifiedValue = computed_value::T;
pub mod computed_value { pub mod computed_value {
use std::fmt; use std::fmt;
use style_traits::ToCss; use style_traits::ToCss;
#[derive(Clone, Copy, Debug, PartialEq)] #[derive(Clone, Copy, Debug, PartialEq, ToComputedValue)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))] #[cfg_attr(feature = "servo", derive(HeapSizeOf))]
pub struct T(pub i32); pub struct T(pub i32);
@ -39,8 +36,10 @@ ${helpers.single_keyword("table-layout", "auto fixed",
} }
// never parse it, only set via presentation attribute // never parse it, only set via presentation attribute
fn parse<'i, 't>(_: &ParserContext, _: &mut Parser<'i, 't>) fn parse<'i, 't>(
-> Result<SpecifiedValue, ParseError<'i>> { _: &ParserContext,
_: &mut Parser<'i, 't>,
) -> Result<SpecifiedValue, ParseError<'i>> {
Err(StyleParseError::UnspecifiedError.into()) Err(StyleParseError::UnspecifiedError.into())
} }
</%helpers:longhand> </%helpers:longhand>