Commit graph

42 commits

Author SHA1 Message Date
Anthony Ramine
02b0f71d45 Simplify some code in #[derive(ToCss)] 2018-03-09 10:12:29 +01:00
Anthony Ramine
859002a81f Opt into field bounds when deriving ToCss, instead of opting out 2018-03-08 16:33:19 +01:00
Emilio Cobos Álvarez
bf08c659a0
style: Switch css(skip_if) to use a Path for consistency. 2018-03-08 10:28:10 +01:00
Emilio Cobos Álvarez
6da1b2fff5
style: Introduce css(skip_if) to conditionally skip serialization of a field. 2018-03-08 10:26:25 +01:00
Emilio Cobos Álvarez
ada45f4968
style: Remove useless String::to_string call. 2018-03-08 10:26:25 +01:00
Anthony Ramine
90b23963b7 Introduce #[css(if_empty = "…", iterable)] 2018-03-07 13:07:13 +01:00
Anthony Ramine
88685be649 Don't use SequenceWriter if there is a single field to serialise 2018-03-06 13:14:26 +01:00
Anthony Ramine
85950a801f Move #[css(iterable)] on fields rather than variants 2018-03-06 11:08:19 +01:00
Anthony Ramine
f5393cef8d Add some assertions for #[derive(ToCss)] on enums 2018-03-06 11:08:19 +01:00
Anthony Ramine
3b31ec36f1 Don't use Ident for #[css(function)]
CSS identifiers aren't Rust identifiers.
2018-03-06 11:08:19 +01:00
Anthony Ramine
529a30a682 Extract variant code to its own function in style_derive::to_css 2018-03-06 11:08:19 +01:00
Anthony Ramine
14dd4217fa Qualify path to ToCss in #[derive(ToCss)] 2018-03-06 11:08:19 +01:00
Anthony Ramine
ca45695db1 Introduce #[css(skip)] 2018-03-05 15:53:15 +01:00
Anthony Ramine
c4cfb127b8 Use darling::util::Override in #[derive(ToCss)] 2018-03-05 13:23:33 +01:00
Anthony Ramine
a71b5d5e16 Derive ToCss for Symbols 2018-03-03 01:01:59 +01:00
Bastien Orivel
9faa579c89 Bump syn/quote in style_derive 2018-02-12 17:08:55 +01:00
Emilio Cobos Álvarez
e41d724694
style: Derive ToCss for FontFamilyList.
The extra reference in to_css is needed because the family list iterator returns
by value in Gecko.
2018-02-07 17:44:15 +01:00
Anthony Ramine
1f8777bb0b Move TransformStyle out of Mako files 2018-02-01 12:40:36 +01:00
Anthony Ramine
579cef6a69 Rename #[parse(aliases)] to #[css(aliases)] 2018-02-01 10:36:14 +01:00
Anthony Ramine
42c8dc983f Derive ToCss for TransformOperation
Now that SequenceWriter<W> does not monomorphise excessively, we can actually
type check a derived ToCss without too much type recursion.
2018-01-23 11:02:34 +01:00
Anthony Ramine
cd8f96cc9e 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.
2018-01-23 10:41:42 +01:00
Emilio Cobos Álvarez
09a3db8657
style_derive: Allow css(iterable) to work on non-functions too, as long as there's only one binding. 2017-12-16 21:47:58 +01:00
Emilio Cobos Álvarez
7036cb0077
Allow deriving Parse for keywords. 2017-12-15 20:01:31 +01:00
Matt Brubeck
3005a26daf style: Use the ? operator for Option 2017-12-09 08:29:53 -08:00
Emilio Cobos Álvarez
eac0d104a3
style: Remove mozmm CSS unit.
Bug: 1416564
Reviewed-by: heycam
MozReview-Commit-ID: AU4CUq09tw4
2017-11-14 14:25:40 +01:00
Emilio Cobos Álvarez
92944cd5eb
style: Make css(dimension) apply to the variant. 2017-11-12 16:25:00 +01:00
Emilio Cobos Álvarez
4927786d90
style: Implement css(dimension) and derive ToCss for a bunch of stuff.
For css(dimension), it'd be nice to derive(Parse) too, I think...
2017-11-12 16:22:45 +01:00
Emilio Cobos Álvarez
06f8f0384b
style: add css(function, iterable), and derive ToCss for VariantAlternates. 2017-11-12 05:24:08 +01:00
Anthony Ramine
4faadb489f Implement #[css(derive_debug)]
This makes #[derive(ToCss)] derive Debug with a simple call to the to_css method.
2017-08-28 12:26:40 +02:00
Anthony Ramine
efc852f6e3 Improve handling of trait bounds when deriving fmap-like traits 2017-08-28 10:39:50 +02:00
Anthony Ramine
04ad28b564 Refactor how we handle trait bounds in style_derive
For the traits we derive which methods don't depend on associated types (i.e.
all of them but ToAnimatedValue and ToComputedValue), we now add trait bounds
for the actual field types directly, instead of bounding the type parameters.
2017-08-27 23:31:16 +02:00
Anthony Ramine
17d97cf87b Use darling in style_derive
This allows use to handle #[css] in a way simpler fashion.
2017-08-24 01:28:58 +02:00
Anthony Ramine
f275895028 Introduce style_derive::cg 2017-08-23 16:52:04 +02:00
Corey Farwell
58fd2956b3 Fix typo in comment. 2017-07-26 21:29:08 +00:00
Anthony Ramine
a3af32155f Introduce #[css(comma)] 2017-07-11 17:14:14 +02:00
Anthony Ramine
39e29f557e Simplify machinery to serialise optional parts of CSS values
We simply implement ToCss for Option<T>, printing nothing if the value is None,
and we then use SequenceWriter to skip writing of separators around empty parts.
2017-06-21 11:17:22 +02:00
Anthony Ramine
3a2e79274a Derive ToCss for keyword structs 2017-06-17 13:46:33 +02:00
Anthony Ramine
b7c83eeb64 Limit trait bounds for derive(ToCss) to types with free variables 2017-06-17 00:36:53 +02:00
Anthony Ramine
d65a7e6f95 Avoid an unwrap in #[derive(ToCss)] 2017-06-16 13:55:26 +02:00
Anthony Ramine
43a5257a0c Introduce #[css(function)] for #[derive(ToCss)]
Any variant with this attribute gets serialised as a CSS function,
using the variant name as the function name.
2017-06-13 10:19:23 +02:00
Anthony Ramine
45e8b0e8c7 Support unit variants when deriving ToCss 2017-06-07 16:47:59 +02:00
Anthony Ramine
c4f1d647a0 Derive the most trivial ToCss implementations 🌋
For now, all variants get serialised as the space-separated serialisations
of their fields. Unit variants are not supported.
2017-06-04 16:17:56 +02:00