зеркало из 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
|
||||
/// declared value for that property.
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
#[derive(Clone, Debug, Eq, PartialEq, ToCss)]
|
||||
pub enum DeclaredValue<'a, T: 'a> {
|
||||
/// A known specified value from the stylesheet.
|
||||
Value(&'a T),
|
||||
|
@ -1360,6 +1360,19 @@ pub struct UnparsedValue {
|
|||
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 {
|
||||
fn substitute_variables(
|
||||
&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
|
||||
/// longhand or a custom property.
|
||||
#[derive(Clone, Copy, PartialEq)]
|
||||
|
@ -1742,14 +1736,7 @@ impl ToCss for VariableDeclaration {
|
|||
where
|
||||
W: fmt::Write,
|
||||
{
|
||||
// https://drafts.csswg.org/css-variables/#variables-in-shorthands
|
||||
match self.value.from_shorthand {
|
||||
None => {
|
||||
dest.write_str(&*self.value.css)?
|
||||
}
|
||||
Some(..) => {},
|
||||
}
|
||||
Ok(())
|
||||
self.value.to_css(dest)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче