diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2018-01-22 19:58:01 +0100 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2018-01-23 10:41:42 +0100 |
commit | cd8f96cc9edd5debbb738ffa3124e3d46c5d8bcf (patch) | |
tree | 5c6f46a882b529a5de7b792d44b0ee432ee327bd /components/style_derive/to_css.rs | |
parent | 3672856efa31195aaa89b007f790df925474001a (diff) | |
download | servo-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.rs | 12 |
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), + ) } } }); |