mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
style: Refactor media query serialization so it doesn't use an intermediate buffer.
I plan to move MediaType to ToCss soon.
This commit is contained in:
parent
b4caebae69
commit
8120906a15
1 changed files with 12 additions and 9 deletions
|
@ -11,7 +11,7 @@ use app_units::Au;
|
||||||
use cssparser::{Delimiter, Parser, Token};
|
use cssparser::{Delimiter, Parser, Token};
|
||||||
use euclid::size::{Size2D, TypedSize2D};
|
use euclid::size::{Size2D, TypedSize2D};
|
||||||
use serialize_comma_separated_list;
|
use serialize_comma_separated_list;
|
||||||
use std::fmt::{self, Write};
|
use std::fmt;
|
||||||
use style_traits::{ToCss, ViewportPx};
|
use style_traits::{ToCss, ViewportPx};
|
||||||
use values::computed::{self, ToComputedValue};
|
use values::computed::{self, ToComputedValue};
|
||||||
use values::specified;
|
use values::specified;
|
||||||
|
@ -118,18 +118,21 @@ impl ToCss for MediaQuery {
|
||||||
try!(write!(dest, "not "));
|
try!(write!(dest, "not "));
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut type_ = String::new();
|
|
||||||
match self.media_type {
|
match self.media_type {
|
||||||
MediaQueryType::All => try!(write!(type_, "all")),
|
MediaQueryType::All => try!(write!(dest, "all")),
|
||||||
MediaQueryType::Known(MediaType::Screen) => try!(write!(type_, "screen")),
|
MediaQueryType::Known(MediaType::Screen) => try!(write!(dest, "screen")),
|
||||||
MediaQueryType::Known(MediaType::Print) => try!(write!(type_, "print")),
|
MediaQueryType::Known(MediaType::Print) => try!(write!(dest, "print")),
|
||||||
MediaQueryType::Unknown(ref desc) => try!(write!(type_, "{}", desc)),
|
MediaQueryType::Unknown(ref desc) => try!(write!(dest, "{}", desc)),
|
||||||
};
|
};
|
||||||
|
|
||||||
if self.expressions.is_empty() {
|
if self.expressions.is_empty() {
|
||||||
return write!(dest, "{}", type_)
|
return Ok(());
|
||||||
} else if type_ != "all" || self.qualifier == Some(Qualifier::Not) {
|
|
||||||
try!(write!(dest, "{} and ", type_));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if self.media_type != MediaQueryType::All || self.qualifier == Some(Qualifier::Not) {
|
||||||
|
try!(write!(dest, " and "));
|
||||||
|
}
|
||||||
|
|
||||||
for (i, &e) in self.expressions.iter().enumerate() {
|
for (i, &e) in self.expressions.iter().enumerate() {
|
||||||
try!(write!(dest, "("));
|
try!(write!(dest, "("));
|
||||||
let (mm, l) = match e {
|
let (mm, l) = match e {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue