зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #20192 - Derive ToCss for DeclaredValue (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo Source-Revision: a716dfd40b091cbe94228a11e5cb75e5cc17f0e3 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : 500af6e601ae62b29682fc41f0e19ce9d23b56c5
This commit is contained in:
Родитель
4fff12589f
Коммит
1b8cb62485
|
@ -1308,7 +1308,7 @@ impl ShorthandId {
|
||||||
|
|
||||||
/// Servo's representation of a declared value for a given `T`, which is the
|
/// Servo's representation of a declared value for a given `T`, which is the
|
||||||
/// declared value for that property.
|
/// declared value for that property.
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
#[derive(Clone, Debug, Eq, PartialEq, ToCss)]
|
||||||
pub enum DeclaredValue<'a, T: 'a> {
|
pub enum DeclaredValue<'a, T: 'a> {
|
||||||
/// A known specified value from the stylesheet.
|
/// A known specified value from the stylesheet.
|
||||||
Value(&'a T),
|
Value(&'a T),
|
||||||
|
@ -1360,6 +1360,19 @@ pub struct UnparsedValue {
|
||||||
from_shorthand: Option<ShorthandId>,
|
from_shorthand: Option<ShorthandId>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ToCss for UnparsedValue {
|
||||||
|
fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
|
||||||
|
where
|
||||||
|
W: Write,
|
||||||
|
{
|
||||||
|
// https://drafts.csswg.org/css-variables/#variables-in-shorthands
|
||||||
|
if self.from_shorthand.is_none() {
|
||||||
|
dest.write_str(&*self.css)?;
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl UnparsedValue {
|
impl UnparsedValue {
|
||||||
fn substitute_variables(
|
fn substitute_variables(
|
||||||
&self,
|
&self,
|
||||||
|
@ -1425,25 +1438,6 @@ impl UnparsedValue {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T: ToCss> ToCss for DeclaredValue<'a, T> {
|
|
||||||
fn to_css<W>(&self, dest: &mut CssWriter<W>) -> fmt::Result
|
|
||||||
where
|
|
||||||
W: Write,
|
|
||||||
{
|
|
||||||
match *self {
|
|
||||||
DeclaredValue::Value(ref inner) => inner.to_css(dest),
|
|
||||||
DeclaredValue::WithVariables(ref with_variables) => {
|
|
||||||
// https://drafts.csswg.org/css-variables/#variables-in-shorthands
|
|
||||||
if with_variables.from_shorthand.is_none() {
|
|
||||||
dest.write_str(&*with_variables.css)?
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
},
|
|
||||||
DeclaredValue::CSSWideKeyword(ref keyword) => keyword.to_css(dest),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// An identifier for a given property declaration, which can be either a
|
/// An identifier for a given property declaration, which can be either a
|
||||||
/// longhand or a custom property.
|
/// longhand or a custom property.
|
||||||
#[derive(Clone, Copy, PartialEq)]
|
#[derive(Clone, Copy, PartialEq)]
|
||||||
|
@ -1742,14 +1736,7 @@ impl ToCss for VariableDeclaration {
|
||||||
where
|
where
|
||||||
W: fmt::Write,
|
W: fmt::Write,
|
||||||
{
|
{
|
||||||
// https://drafts.csswg.org/css-variables/#variables-in-shorthands
|
self.value.to_css(dest)
|
||||||
match self.value.from_shorthand {
|
|
||||||
None => {
|
|
||||||
dest.write_str(&*self.value.css)?
|
|
||||||
}
|
|
||||||
Some(..) => {},
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче