aboutsummaryrefslogtreecommitdiffstats
path: root/components/style_derive/to_css.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-01-22 19:58:01 +0100
committerAnthony Ramine <n.oxyde@gmail.com>2018-01-23 10:41:42 +0100
commitcd8f96cc9edd5debbb738ffa3124e3d46c5d8bcf (patch)
tree5c6f46a882b529a5de7b792d44b0ee432ee327bd /components/style_derive/to_css.rs
parent3672856efa31195aaa89b007f790df925474001a (diff)
downloadservo-cd8f96cc9edd5debbb738ffa3124e3d46c5d8bcf.tar.gz
servo-cd8f96cc9edd5debbb738ffa3124e3d46c5d8bcf.zip
Change ToCss to take a CssWriter<W>
This more concrete wrapper type can write a prefix the very first time something is written to it. This allows removing plenty of useless monomorphisations caused by the former W/SequenceWriter<W> pair of types.
Diffstat (limited to 'components/style_derive/to_css.rs')
-rw-r--r--components/style_derive/to_css.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/components/style_derive/to_css.rs b/components/style_derive/to_css.rs
index 12fad8f0d34..db56ca3b644 100644
--- a/components/style_derive/to_css.rs
+++ b/components/style_derive/to_css.rs
@@ -48,7 +48,7 @@ pub fn derive(input: DeriveInput) -> Tokens {
}
quote! {{
- let mut writer = ::style_traits::values::SequenceWriter::new(&mut *dest, #separator);
+ let mut writer = ::style_traits::values::SequenceWriter::new(dest, #separator);
#expr
Ok(())
}}
@@ -78,7 +78,10 @@ pub fn derive(input: DeriveInput) -> Tokens {
impl #impl_generics ::style_traits::ToCss for #name #ty_generics #where_clause {
#[allow(unused_variables)]
#[inline]
- fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result
+ fn to_css<W>(
+ &self,
+ dest: &mut ::style_traits::CssWriter<W>,
+ ) -> ::std::fmt::Result
where
W: ::std::fmt::Write
{
@@ -93,7 +96,10 @@ pub fn derive(input: DeriveInput) -> Tokens {
impls.append(quote! {
impl #impl_generics ::std::fmt::Debug for #name #ty_generics #where_clause {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
- ::style_traits::ToCss::to_css(self, f)
+ ::style_traits::ToCss::to_css(
+ self,
+ &mut ::style_traits::CssWriter::new(f),
+ )
}
}
});