mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Derive ToComputedValue for TrackBreadth<L>
This commit is contained in:
parent
735e093de7
commit
3751fe9fdc
3 changed files with 5 additions and 29 deletions
|
@ -2265,11 +2265,8 @@ https://drafts.csswg.org/css-fonts-4/#low-level-font-variation-settings-control-
|
||||||
predefined_type="Number" gecko_ffi_name="mScriptSizeMultiplier"
|
predefined_type="Number" gecko_ffi_name="mScriptSizeMultiplier"
|
||||||
spec="Internal (not web-exposed)"
|
spec="Internal (not web-exposed)"
|
||||||
internal="True">
|
internal="True">
|
||||||
use values::computed::ComputedValueAsSpecified;
|
|
||||||
pub use self::computed_value::T as SpecifiedValue;
|
pub use self::computed_value::T as SpecifiedValue;
|
||||||
|
|
||||||
impl ComputedValueAsSpecified for SpecifiedValue {}
|
|
||||||
|
|
||||||
pub mod computed_value {
|
pub mod computed_value {
|
||||||
pub type T = f32;
|
pub type T = f32;
|
||||||
}
|
}
|
||||||
|
|
|
@ -327,6 +327,7 @@ impl<T> ToComputedValue for T
|
||||||
|
|
||||||
impl ComputedValueAsSpecified for Atom {}
|
impl ComputedValueAsSpecified for Atom {}
|
||||||
impl ComputedValueAsSpecified for bool {}
|
impl ComputedValueAsSpecified for bool {}
|
||||||
|
impl ComputedValueAsSpecified for f32 {}
|
||||||
|
|
||||||
impl ComputedValueAsSpecified for specified::BorderStyle {}
|
impl ComputedValueAsSpecified for specified::BorderStyle {}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ use parser::{Parse, ParserContext};
|
||||||
use std::{fmt, mem, usize};
|
use std::{fmt, mem, usize};
|
||||||
use style_traits::{ToCss, ParseError, StyleParseError};
|
use style_traits::{ToCss, ParseError, StyleParseError};
|
||||||
use values::{CSSFloat, CustomIdent, serialize_dimension};
|
use values::{CSSFloat, CustomIdent, serialize_dimension};
|
||||||
use values::computed::{ComputedValueAsSpecified, Context, ToComputedValue};
|
use values::computed::ComputedValueAsSpecified;
|
||||||
use values::specified::Integer;
|
use values::specified::Integer;
|
||||||
use values::specified::grid::parse_line_names;
|
use values::specified::grid::parse_line_names;
|
||||||
|
|
||||||
|
@ -137,13 +137,14 @@ define_css_keyword_enum!{ TrackKeyword:
|
||||||
"max-content" => MaxContent,
|
"max-content" => MaxContent,
|
||||||
"min-content" => MinContent
|
"min-content" => MinContent
|
||||||
}
|
}
|
||||||
|
impl ComputedValueAsSpecified for TrackKeyword {}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
|
||||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
|
||||||
/// A track breadth for explicit grid track sizing. It's generic solely to
|
/// A track breadth for explicit grid track sizing. It's generic solely to
|
||||||
/// avoid re-implementing it for the computed type.
|
/// avoid re-implementing it for the computed type.
|
||||||
///
|
///
|
||||||
/// https://drafts.csswg.org/css-grid/#typedef-track-breadth
|
/// https://drafts.csswg.org/css-grid/#typedef-track-breadth
|
||||||
|
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||||
|
#[derive(Clone, Debug, PartialEq, ToComputedValue)]
|
||||||
pub enum TrackBreadth<L> {
|
pub enum TrackBreadth<L> {
|
||||||
/// The generic type is almost always a non-negative `<length-percentage>`
|
/// The generic type is almost always a non-negative `<length-percentage>`
|
||||||
Breadth(L),
|
Breadth(L),
|
||||||
|
@ -176,29 +177,6 @@ impl<L: ToCss> ToCss for TrackBreadth<L> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<L: ToComputedValue> ToComputedValue for TrackBreadth<L> {
|
|
||||||
type ComputedValue = TrackBreadth<L::ComputedValue>;
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn to_computed_value(&self, context: &Context) -> Self::ComputedValue {
|
|
||||||
match *self {
|
|
||||||
TrackBreadth::Breadth(ref lop) => TrackBreadth::Breadth(lop.to_computed_value(context)),
|
|
||||||
TrackBreadth::Flex(fr) => TrackBreadth::Flex(fr),
|
|
||||||
TrackBreadth::Keyword(k) => TrackBreadth::Keyword(k),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn from_computed_value(computed: &Self::ComputedValue) -> Self {
|
|
||||||
match *computed {
|
|
||||||
TrackBreadth::Breadth(ref lop) =>
|
|
||||||
TrackBreadth::Breadth(ToComputedValue::from_computed_value(lop)),
|
|
||||||
TrackBreadth::Flex(fr) => TrackBreadth::Flex(fr),
|
|
||||||
TrackBreadth::Keyword(k) => TrackBreadth::Keyword(k),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A `<track-size>` type for explicit grid track sizing. Like `<track-breadth>`, this is
|
/// A `<track-size>` type for explicit grid track sizing. Like `<track-breadth>`, this is
|
||||||
/// generic only to avoid code bloat. It only takes `<length-percentage>`
|
/// generic only to avoid code bloat. It only takes `<length-percentage>`
|
||||||
///
|
///
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue