1use super::prelude::*;
7use crate::{Length, PositionOne, PositionTwo};
8use css_parse::{Cursor, Parse, Parser, Result as ParseResult};
9
10#[syntax(" none | <filter-value-list> ")]
20#[derive(
21 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
22)]
23#[declaration_metadata(
24 initial = "none",
25 applies_to = Unknown,
26 animation_type = Unknown,
27 property_group = FilterEffects,
28 computed_value_type = AsSpecified,
29 canonical_order = "per grammar",
30)]
31#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
32#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
33#[derive(csskit_derives::NodeWithMetadata)]
34pub struct WebkitFilterStyleValue<'a>;
35
36#[syntax(" none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] ")]
46#[derive(
47 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
48)]
49#[declaration_metadata(
50 initial = "0 1 auto",
51 applies_to = Elements,
52 animation_type = Unknown,
53 property_group = Flexbox,
54 computed_value_type = Unknown,
55 canonical_order = "per grammar",
56)]
57#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
58#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
59#[derive(csskit_derives::NodeWithMetadata)]
60pub struct WebkitFlexStyleValue;
61
62#[syntax(" <integer> ")]
72#[derive(
73 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
74)]
75#[declaration_metadata(
76 initial = "0",
77 applies_to = Elements,
78 animation_type = ByComputedValue,
79 property_group = Flexbox,
80 computed_value_type = AsSpecified,
81 canonical_order = "per grammar",
82)]
83#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
84#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
85#[derive(csskit_derives::NodeWithMetadata)]
86pub struct WebkitOrderStyleValue;
87
88#[syntax(" <position-one> | <position-two> <length>? ")]
98#[derive(
99 Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
100)]
101#[declaration_metadata(
102 initial = "none",
103 applies_to = Unknown,
104 animation_type = Unknown,
105 property_group = FilterEffects,
106 computed_value_type = AsSpecified,
107 canonical_order = "per grammar",
108)]
109#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
110#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
111#[derive(csskit_derives::NodeWithMetadata)]
112pub enum WebkitTransformOriginStyleValue {}
113
114impl<'a> Parse<'a> for WebkitTransformOriginStyleValue {
115 fn parse<I>(p: &mut Parser<'a, I>) -> ParseResult<Self>
116 where
117 I: Iterator<Item = Cursor> + Clone,
118 {
119 let first = p.parse::<PositionOne>()?;
120 let Some(second) = p.parse_if_peek::<PositionOne>()? else { return Ok(Self::PositionOne(first)) };
121 let two = PositionTwo::from_two(p, first, second)?;
122 Ok(Self::PositionTwo(two, p.parse_if_peek::<Length>()?))
123 }
124}
125
126#[syntax(" <single-transition># ")]
136#[derive(
137 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
138)]
139#[declaration_metadata(
140 initial = "see individual properties",
141 applies_to = Elements,
142 property_group = Transitions,
143 computed_value_type = Unknown,
144 canonical_order = "per grammar",
145)]
146#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
147#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
148#[derive(csskit_derives::NodeWithMetadata)]
149pub struct WebkitTransitionStyleValue<'a>;
150
151#[syntax(" none | auto | base | base-select | <compat-auto> | <compat-special> ")]
161#[derive(
162 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
163)]
164#[declaration_metadata(
165 initial = "none",
166 applies_to = Elements,
167 animation_type = Discrete,
168 property_group = Ui,
169 computed_value_type = Unknown,
170 canonical_order = "per grammar",
171)]
172#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
173#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
174#[derive(csskit_derives::NodeWithMetadata)]
175pub enum WebkitAppearanceStyleValue {}
176
177#[syntax(" none | <transform-list> ")]
187#[derive(
188 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
189)]
190#[declaration_metadata(
191 initial = "none",
192 applies_to = Unknown,
193 animation_type = Unknown,
194 property_group = Transforms,
195 computed_value_type = AsSpecified,
196 canonical_order = "per grammar",
197)]
198#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
199#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
200#[derive(csskit_derives::NodeWithMetadata)]
201pub struct WebkitTransformStyleValue<'a>;
202
203#[syntax(" auto | none | antialiased | subpixel-antialiased ")]
213#[derive(
214 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
215)]
216#[declaration_metadata(
217 initial = "auto",
218 applies_to = Unknown,
219 animation_type = Unknown,
220 property_group = Fonts,
221 computed_value_type = AsSpecified,
222 canonical_order = "per grammar",
223)]
224#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
225#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
226#[derive(csskit_derives::NodeWithMetadata)]
227pub enum WebkitFontSmoothingStyleValue {}
228
229#[syntax(" auto | none | <percentage [0,∞]> ")]
239#[derive(
240 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
241)]
242#[declaration_metadata(
243 initial = "auto",
244 inherits,
245 applies_to = Elements,
246 animation_type = ByComputedValue,
247 percentages = Unknown,
248 property_group = SizeAdjust,
249 computed_value_type = Unknown,
250 canonical_order = "N/A",
251)]
252#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
253#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
254#[derive(csskit_derives::NodeWithMetadata)]
255pub struct WebkitTextSizeAdjustStyleValue;
256
257#[syntax(" <time># ")]
267#[derive(
268 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
269)]
270#[declaration_metadata(
271 initial = "0s",
272 applies_to = Elements,
273 property_group = Animations,
274 computed_value_type = Unknown,
275 canonical_order = "per grammar",
276)]
277#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
278#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
279#[derive(csskit_derives::NodeWithMetadata)]
280pub struct WebkitAnimationDelayStyleValue<'a>;
281
282#[syntax(" [ auto | <time [0s,∞]> ]# ")]
292#[derive(
293 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
294)]
295#[declaration_metadata(
296 initial = "auto",
297 applies_to = Elements,
298 property_group = Animations,
299 computed_value_type = Unknown,
300 canonical_order = "per grammar",
301)]
302#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
303#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
304#[derive(csskit_derives::NodeWithMetadata)]
305pub struct WebkitAnimationDurationStyleValue<'a>;
306
307#[syntax(" <single-animation-fill-mode># ")]
317#[derive(
318 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
319)]
320#[declaration_metadata(
321 initial = "none",
322 applies_to = Elements,
323 property_group = Animations,
324 computed_value_type = Unknown,
325 canonical_order = "per grammar",
326)]
327#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
328#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
329#[derive(csskit_derives::NodeWithMetadata)]
330pub struct WebkitAnimationFillModeStyleValue<'a>;
331
332#[syntax(" <single-animation-iteration-count># ")]
342#[derive(
343 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
344)]
345#[declaration_metadata(
346 initial = "1",
347 applies_to = Elements,
348 property_group = Animations,
349 computed_value_type = Unknown,
350 canonical_order = "per grammar",
351)]
352#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
353#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
354#[derive(csskit_derives::NodeWithMetadata)]
355pub struct WebkitAnimationIterationCountStyleValue<'a>;
356
357#[syntax(" [ none | <keyframes-name> ]# ")]
367#[derive(
368 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
369)]
370#[declaration_metadata(
371 initial = "none",
372 applies_to = Elements,
373 property_group = Animations,
374 computed_value_type = Unknown,
375 canonical_order = "per grammar",
376)]
377#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
378#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
379#[derive(csskit_derives::NodeWithMetadata)]
380pub struct WebkitAnimationNameStyleValue<'a>;
381
382#[syntax(" <easing-function># ")]
392#[derive(
393 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
394)]
395#[declaration_metadata(
396 initial = "ease",
397 applies_to = Elements,
398 property_group = Animations,
399 computed_value_type = Unknown,
400 canonical_order = "per grammar",
401)]
402#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
403#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
404#[derive(csskit_derives::NodeWithMetadata)]
405pub struct WebkitAnimationTimingFunctionStyleValue<'a>;
406
407#[syntax(" visible | hidden ")]
417#[derive(
418 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
419)]
420#[declaration_metadata(
421 initial = "visible",
422 applies_to = Elements,
423 property_group = Transforms,
424 computed_value_type = AsSpecified,
425 canonical_order = "per grammar",
426)]
427#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
428#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
429#[derive(csskit_derives::NodeWithMetadata)]
430pub enum WebkitBackfaceVisibilityStyleValue {}
431
432#[syntax(" <color> ")]
442#[derive(
443 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
444)]
445#[declaration_metadata(
446 initial = "transparent",
447 applies_to = Elements,
448 property_group = Ui,
449 computed_value_type = AsSpecified,
450 canonical_order = "per grammar",
451)]
452#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
453#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
454#[derive(csskit_derives::NodeWithMetadata)]
455pub struct WebkitTapHighlightColorStyleValue<'a>;
456
457#[syntax(" <time [0s,∞]># ")]
467#[derive(
468 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
469)]
470#[declaration_metadata(
471 initial = "0s",
472 applies_to = Elements,
473 property_group = Transitions,
474 computed_value_type = Unknown,
475 canonical_order = "per grammar",
476)]
477#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
478#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
479#[derive(csskit_derives::NodeWithMetadata)]
480pub struct WebkitTransitionDurationStyleValue<'a>;
481
482#[syntax(" <easing-function># ")]
492#[derive(
493 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
494)]
495#[declaration_metadata(
496 initial = "ease",
497 applies_to = Elements,
498 property_group = Transitions,
499 computed_value_type = AsSpecified,
500 canonical_order = "per grammar",
501)]
502#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
503#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
504#[derive(csskit_derives::NodeWithMetadata)]
505pub struct WebkitTransitionTimingFunctionStyleValue<'a>;
506
507#[syntax(" row | row-reverse | column | column-reverse ")]
511#[derive(
512 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
513)]
514#[declaration_metadata(
515 initial = "row",
516 applies_to = Elements,
517 animation_type = Discrete,
518 property_group = Flexbox,
519 computed_value_type = AsSpecified,
520 canonical_order = "per grammar",
521)]
522#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
523#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
524#[derive(csskit_derives::NodeWithMetadata)]
525pub enum WebkitFlexDirectionStyleValue {}
526
527#[syntax(" nowrap | wrap | wrap-reverse ")]
529#[derive(
530 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
531)]
532#[declaration_metadata(
533 initial = "nowrap",
534 applies_to = Elements,
535 animation_type = Discrete,
536 property_group = Flexbox,
537 computed_value_type = AsSpecified,
538 canonical_order = "per grammar",
539)]
540#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
541#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
542#[derive(csskit_derives::NodeWithMetadata)]
543pub enum WebkitFlexWrapStyleValue {}
544
545#[syntax(" content | <'width'> ")]
547#[derive(
548 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
549)]
550#[declaration_metadata(
551 initial = "auto",
552 applies_to = Elements,
553 animation_type = ByComputedValue,
554 property_group = Flexbox,
555 computed_value_type = Unknown,
556 canonical_order = "per grammar",
557)]
558#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
559#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
560#[derive(csskit_derives::NodeWithMetadata)]
561pub enum WebkitFlexBasisStyleValue {}
562
563#[syntax(" <'flex-direction'> || <'flex-wrap'> ")]
565#[derive(
566 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
567)]
568#[declaration_metadata(
569 initial = "see individual properties",
570 applies_to = Elements,
571 property_group = Flexbox,
572 computed_value_type = Unknown,
573 canonical_order = "per grammar",
574)]
575#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
576#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
577#[derive(csskit_derives::NodeWithMetadata)]
578pub struct WebkitFlexFlowStyleValue;
579
580#[syntax(" <number [0,∞]> ")]
582#[derive(
583 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
584)]
585#[declaration_metadata(
586 initial = "0",
587 applies_to = Elements,
588 animation_type = ByComputedValue,
589 property_group = Flexbox,
590 computed_value_type = AsSpecified,
591 canonical_order = "per grammar",
592)]
593#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
594#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
595#[derive(csskit_derives::NodeWithMetadata)]
596pub struct WebkitFlexGrowStyleValue;
597
598#[syntax(" normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ")]
600#[derive(
601 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
602)]
603#[declaration_metadata(
604 initial = "normal",
605 applies_to = Elements,
606 animation_type = Discrete,
607 property_group = Align,
608 computed_value_type = AsSpecified,
609 canonical_order = "per grammar",
610)]
611#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
612#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
613#[derive(csskit_derives::NodeWithMetadata)]
614pub enum WebkitJustifyContentStyleValue {}
615
616#[syntax(" normal | stretch | <baseline-position> | <overflow-position>? <self-position> ")]
618#[derive(
619 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
620)]
621#[declaration_metadata(
622 initial = "normal",
623 applies_to = Elements,
624 animation_type = Discrete,
625 property_group = Align,
626 computed_value_type = AsSpecified,
627 canonical_order = "per grammar",
628)]
629#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
630#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
631#[derive(csskit_derives::NodeWithMetadata)]
632pub enum WebkitAlignItemsStyleValue {}
633
634#[syntax(" auto | <overflow-position>? [ normal | <self-position> ] | stretch | <baseline-position> ")]
636#[derive(
637 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
638)]
639#[declaration_metadata(
640 initial = "auto",
641 applies_to = Elements,
642 animation_type = Discrete,
643 property_group = Align,
644 computed_value_type = AsSpecified,
645 canonical_order = "per grammar",
646)]
647#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
648#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
649#[derive(csskit_derives::NodeWithMetadata)]
650pub enum WebkitAlignSelfStyleValue {}
651
652#[syntax(" normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ")]
654#[derive(
655 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
656)]
657#[declaration_metadata(
658 initial = "normal",
659 applies_to = Elements,
660 animation_type = Discrete,
661 property_group = Align,
662 computed_value_type = AsSpecified,
663 canonical_order = "per grammar",
664)]
665#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
666#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
667#[derive(csskit_derives::NodeWithMetadata)]
668pub enum WebkitAlignContentStyleValue {}
669
670#[syntax(" horizontal | vertical | inline-axis | block-axis ")]
674#[derive(
675 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
676)]
677#[declaration_metadata(
678 initial = "inline-axis",
679 applies_to = Elements,
680 animation_type = Discrete,
681 property_group = Flexbox,
682 computed_value_type = AsSpecified,
683 canonical_order = "per grammar",
684)]
685#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
686#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
687#[derive(csskit_derives::NodeWithMetadata)]
688pub enum WebkitBoxOrientStyleValue {}
689
690#[syntax(" normal | reverse ")]
692#[derive(
693 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
694)]
695#[declaration_metadata(
696 initial = "normal",
697 applies_to = Elements,
698 animation_type = Discrete,
699 property_group = Flexbox,
700 computed_value_type = AsSpecified,
701 canonical_order = "per grammar",
702)]
703#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
704#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
705#[derive(csskit_derives::NodeWithMetadata)]
706pub enum WebkitBoxDirectionStyleValue {}
707
708#[syntax(" start | end | center | justify ")]
710#[derive(
711 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
712)]
713#[declaration_metadata(
714 initial = "start",
715 applies_to = Elements,
716 animation_type = Discrete,
717 property_group = Flexbox,
718 computed_value_type = AsSpecified,
719 canonical_order = "per grammar",
720)]
721#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
722#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
723#[derive(csskit_derives::NodeWithMetadata)]
724pub enum WebkitBoxPackStyleValue {}
725
726#[syntax(" stretch | start | end | center | baseline ")]
728#[derive(
729 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
730)]
731#[declaration_metadata(
732 initial = "stretch",
733 applies_to = Elements,
734 animation_type = Discrete,
735 property_group = Flexbox,
736 computed_value_type = AsSpecified,
737 canonical_order = "per grammar",
738)]
739#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
740#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
741#[derive(csskit_derives::NodeWithMetadata)]
742pub enum WebkitBoxAlignStyleValue {}
743
744#[syntax(" <number> ")]
746#[derive(
747 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
748)]
749#[declaration_metadata(
750 initial = "0",
751 applies_to = Elements,
752 animation_type = ByComputedValue,
753 property_group = Flexbox,
754 computed_value_type = AsSpecified,
755 canonical_order = "per grammar",
756)]
757#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
758#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
759#[derive(csskit_derives::NodeWithMetadata)]
760pub struct WebkitBoxFlexStyleValue;
761
762#[syntax(" <integer [1,∞]> ")]
764#[derive(
765 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
766)]
767#[declaration_metadata(
768 initial = "1",
769 applies_to = Elements,
770 animation_type = ByComputedValue,
771 property_group = Flexbox,
772 computed_value_type = AsSpecified,
773 canonical_order = "per grammar",
774)]
775#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
776#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
777#[derive(csskit_derives::NodeWithMetadata)]
778pub struct WebkitBoxOrdinalGroupStyleValue;
779
780#[syntax(" <spread-shadow># ")]
782#[derive(
783 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
784)]
785#[declaration_metadata(
786 initial = "none",
787 applies_to = Elements,
788 animation_type = ByComputedValue,
789 property_group = Borders,
790 computed_value_type = Unknown,
791 canonical_order = "per grammar",
792)]
793#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
794#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
795#[derive(csskit_derives::NodeWithMetadata)]
796pub struct WebkitBoxShadowStyleValue<'a>;
797
798#[syntax(" content-box | border-box ")]
800#[derive(
801 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
802)]
803#[declaration_metadata(
804 initial = "content-box",
805 applies_to = Elements,
806 animation_type = Discrete,
807 property_group = Sizing,
808 computed_value_type = AsSpecified,
809 canonical_order = "per grammar",
810)]
811#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
812#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
813#[derive(csskit_derives::NodeWithMetadata)]
814pub enum WebkitBoxSizingStyleValue {}
815
816#[syntax(" clone | slice ")]
818#[derive(
819 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
820)]
821#[declaration_metadata(
822 initial = "slice",
823 applies_to = Elements,
824 animation_type = Discrete,
825 property_group = Borders,
826 computed_value_type = AsSpecified,
827 canonical_order = "per grammar",
828)]
829#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
830#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
831#[derive(csskit_derives::NodeWithMetadata)]
832pub enum WebkitBoxDecorationBreakStyleValue {}
833
834#[syntax(" auto | text | none | all ")]
838#[derive(
839 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
840)]
841#[declaration_metadata(
842 initial = "auto",
843 applies_to = Elements,
844 animation_type = Discrete,
845 property_group = Ui,
846 computed_value_type = AsSpecified,
847 canonical_order = "per grammar",
848)]
849#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
850#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
851#[derive(csskit_derives::NodeWithMetadata)]
852pub enum WebkitUserSelectStyleValue {}
853
854#[syntax(" auto | touch ")]
856#[derive(
857 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
858)]
859#[declaration_metadata(
860 initial = "auto",
861 applies_to = Elements,
862 animation_type = Discrete,
863 property_group = Overflow,
864 computed_value_type = AsSpecified,
865 canonical_order = "per grammar",
866)]
867#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
868#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
869#[derive(csskit_derives::NodeWithMetadata)]
870pub enum WebkitOverflowScrollingStyleValue {}
871
872#[syntax(" economy | exact ")]
874#[derive(
875 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
876)]
877#[declaration_metadata(
878 initial = "economy",
879 inherits,
880 applies_to = Elements,
881 animation_type = Discrete,
882 property_group = ColorAdjust,
883 computed_value_type = AsSpecified,
884 canonical_order = "per grammar",
885)]
886#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
887#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
888#[derive(csskit_derives::NodeWithMetadata)]
889pub enum WebkitPrintColorAdjustStyleValue {}
890
891#[syntax(
893 " <'text-decoration-line'> || <'text-decoration-thickness'> || <'text-decoration-style'> || <'text-decoration-color'> "
894)]
895#[derive(
896 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
897)]
898#[declaration_metadata(
899 initial = "see individual properties",
900 applies_to = Elements,
901 animation_type = Unknown,
902 property_group = TextDecor,
903 computed_value_type = Unknown,
904 canonical_order = "per grammar",
905)]
906#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
907#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
908#[derive(csskit_derives::NodeWithMetadata)]
909pub struct WebkitTextDecorationStyleValue<'a>;
910
911#[syntax(" <color> ")]
913#[derive(
914 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
915)]
916#[declaration_metadata(
917 initial = "currentcolor",
918 inherits,
919 applies_to = Elements,
920 animation_type = ByComputedValue,
921 property_group = TextDecor,
922 computed_value_type = Unknown,
923 canonical_order = "per grammar",
924)]
925#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
926#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
927#[derive(csskit_derives::NodeWithMetadata)]
928pub struct WebkitTextDecorationColorStyleValue<'a>;
929
930#[syntax(" auto | none | all ")]
932#[derive(
933 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
934)]
935#[declaration_metadata(
936 initial = "auto",
937 inherits,
938 applies_to = Elements,
939 animation_type = Discrete,
940 property_group = TextDecor,
941 computed_value_type = AsSpecified,
942 canonical_order = "per grammar",
943)]
944#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
945#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
946#[derive(csskit_derives::NodeWithMetadata)]
947pub enum WebkitTextDecorationSkipInkStyleValue {}
948
949#[syntax(" normal | <length-percentage [0,∞]> | <line-width> ")]
951#[derive(
952 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
953)]
954#[declaration_metadata(
955 initial = "normal",
956 applies_to = Elements,
957 animation_type = ByComputedValue,
958 property_group = Gaps,
959 computed_value_type = Unknown,
960 canonical_order = "per grammar",
961)]
962#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
963#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
964#[derive(csskit_derives::NodeWithMetadata)]
965pub enum WebkitColumnGapStyleValue {}
966
967#[syntax(" auto | <integer [1,∞]> ")]
969#[derive(
970 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
971)]
972#[declaration_metadata(
973 initial = "auto",
974 applies_to = Elements,
975 animation_type = ByComputedValue,
976 property_group = Multicol,
977 computed_value_type = AsSpecified,
978 canonical_order = "per grammar",
979)]
980#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
981#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
982#[derive(csskit_derives::NodeWithMetadata)]
983pub struct WebkitColumnCountStyleValue;
984
985#[syntax(" <'margin-top'> ")]
987#[derive(
988 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
989)]
990#[declaration_metadata(
991 initial = "0",
992 applies_to = Elements,
993 animation_type = ByComputedValue,
994 property_group = Logical,
995 computed_value_type = Unknown,
996 canonical_order = "per grammar",
997)]
998#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
999#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1000#[derive(csskit_derives::NodeWithMetadata)]
1001pub struct WebkitMarginEndStyleValue;
1002
1003#[syntax(" <position># ")]
1005#[derive(
1006 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1007)]
1008#[declaration_metadata(
1009 initial = "0% 0%",
1010 applies_to = Elements,
1011 animation_type = Unknown,
1012 property_group = Masking,
1013 computed_value_type = Unknown,
1014 canonical_order = "per grammar",
1015)]
1016#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1017#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1018#[derive(csskit_derives::NodeWithMetadata)]
1019pub struct WebkitMaskPositionStyleValue<'a>;
1020
1021#[syntax(" <bg-size># ")]
1023#[derive(
1024 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1025)]
1026#[declaration_metadata(
1027 initial = "auto",
1028 applies_to = Elements,
1029 animation_type = Unknown,
1030 property_group = Masking,
1031 computed_value_type = Unknown,
1032 canonical_order = "per grammar",
1033)]
1034#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1035#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1036#[derive(csskit_derives::NodeWithMetadata)]
1037pub struct WebkitMaskSizeStyleValue<'a>;
1038
1039#[syntax(" none | <single-transition-property># ")]
1041#[derive(
1042 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1043)]
1044#[declaration_metadata(
1045 initial = "all",
1046 applies_to = Elements,
1047 property_group = Transitions,
1048 computed_value_type = Unknown,
1049 canonical_order = "per grammar",
1050)]
1051#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1052#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1053#[derive(csskit_derives::NodeWithMetadata)]
1054pub struct WebkitTransitionPropertyStyleValue<'a>;
1055
1056#[syntax(" <time># ")]
1058#[derive(
1059 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1060)]
1061#[declaration_metadata(
1062 initial = "0s",
1063 applies_to = Elements,
1064 property_group = Transitions,
1065 computed_value_type = Unknown,
1066 canonical_order = "per grammar",
1067)]
1068#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1069#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1070#[derive(csskit_derives::NodeWithMetadata)]
1071pub struct WebkitTransitionDelayStyleValue<'a>;
1072
1073#[syntax(" auto | none | element ")]
1075#[derive(
1076 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1077)]
1078#[declaration_metadata(
1079 initial = "auto",
1080 applies_to = Elements,
1081 animation_type = Discrete,
1082 property_group = Ui,
1083 computed_value_type = AsSpecified,
1084 canonical_order = "per grammar",
1085)]
1086#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1087#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1088#[derive(csskit_derives::NodeWithMetadata)]
1089pub enum WebkitUserDragStyleValue {}
1090
1091#[syntax(" default | none ")]
1093#[derive(
1094 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1095)]
1096#[declaration_metadata(
1097 initial = "default",
1098 inherits,
1099 applies_to = Elements,
1100 animation_type = Discrete,
1101 property_group = Ui,
1102 computed_value_type = AsSpecified,
1103 canonical_order = "per grammar",
1104)]
1105#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1106#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1107#[derive(csskit_derives::NodeWithMetadata)]
1108pub enum WebkitTouchCalloutStyleValue {}
1109
1110#[syntax(" <color> ")]
1112#[derive(
1113 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1114)]
1115#[declaration_metadata(
1116 initial = "currentcolor",
1117 inherits,
1118 applies_to = Elements,
1119 animation_type = ByComputedValue,
1120 property_group = Fonts,
1121 computed_value_type = Unknown,
1122 canonical_order = "per grammar",
1123)]
1124#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1125#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1126#[derive(csskit_derives::NodeWithMetadata)]
1127pub struct WebkitTextFillColorStyleValue<'a>;
1128
1129#[syntax(" <color> ")]
1131#[derive(
1132 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1133)]
1134#[declaration_metadata(
1135 initial = "currentcolor",
1136 inherits,
1137 applies_to = Elements,
1138 animation_type = ByComputedValue,
1139 property_group = Fonts,
1140 computed_value_type = Unknown,
1141 canonical_order = "per grammar",
1142)]
1143#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1144#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1145#[derive(csskit_derives::NodeWithMetadata)]
1146pub struct WebkitTextStrokeColorStyleValue<'a>;
1147
1148#[syntax(" <line-width> ")]
1150#[derive(
1151 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1152)]
1153#[declaration_metadata(
1154 initial = "0",
1155 inherits,
1156 applies_to = Elements,
1157 animation_type = Discrete,
1158 property_group = Fonts,
1159 computed_value_type = Unknown,
1160 canonical_order = "per grammar",
1161)]
1162#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1163#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1164#[derive(csskit_derives::NodeWithMetadata)]
1165pub struct WebkitTextStrokeWidthStyleValue;
1166
1167#[syntax(" <bg-clip># ")]
1169#[derive(
1170 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1171)]
1172#[declaration_metadata(
1173 initial = "border-box",
1174 applies_to = Elements,
1175 animation_type = Discrete,
1176 property_group = Backgrounds,
1177 computed_value_type = AsSpecified,
1178 canonical_order = "per grammar",
1179)]
1180#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1181#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1182#[derive(csskit_derives::NodeWithMetadata)]
1183pub struct WebkitBackgroundClipStyleValue<'a>;
1184
1185#[syntax(" <bg-size># ")]
1187#[derive(
1188 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1189)]
1190#[declaration_metadata(
1191 initial = "auto",
1192 applies_to = Elements,
1193 animation_type = ByComputedValue,
1194 property_group = Backgrounds,
1195 computed_value_type = Unknown,
1196 canonical_order = "per grammar",
1197)]
1198#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1199#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1200#[derive(csskit_derives::NodeWithMetadata)]
1201pub struct WebkitBackgroundSizeStyleValue<'a>;
1202
1203#[syntax(" none | <length [0,∞]> ")]
1210#[derive(
1211 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1212)]
1213#[declaration_metadata(
1214 initial = "none",
1215 applies_to = Elements,
1216 animation_type = ByComputedValue,
1217 property_group = Transforms,
1218 computed_value_type = Unknown,
1219 canonical_order = "per grammar",
1220)]
1221#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1222#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1223#[derive(csskit_derives::NodeWithMetadata)]
1224pub struct WebkitPerspectiveStyleValue;
1225
1226#[cfg(test)]
1232mod tests {
1233 use super::*;
1234 use crate::CssAtomSet;
1235 use css_parse::{assert_parse, assert_parse_error, assert_peek_false};
1236
1237 #[test]
1238 fn size_test() {
1239 assert_eq!(std::mem::size_of::<WebkitFilterStyleValue>(), 32);
1240 }
1241
1242 #[test]
1243 fn test_parses() {
1244 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "none");
1245 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "blur(4px)");
1246 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "brightness(0.5) contrast(1.2)");
1247 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "drop-shadow(2px 4px)");
1248 assert_parse!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "drop-shadow(red 2px 4px)");
1249 }
1250
1251 #[test]
1252 fn test_errors() {
1253 assert_peek_false!(CssAtomSet::ATOMS, WebkitFilterStyleValue, "invalid");
1254 }
1255
1256 #[test]
1257 fn size_test_transition() {
1258 assert_eq!(
1259 std::mem::size_of::<WebkitTransitionStyleValue>(),
1260 std::mem::size_of::<crate::values::TransitionStyleValue>()
1261 );
1262 }
1263
1264 #[test]
1265 fn test_transition_parses() {
1266 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "none");
1267 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "all 0.3s ease");
1268 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "opacity 1s, transform 0.5s");
1269 }
1270
1271 #[test]
1272 fn test_transition_errors() {
1273 assert_parse_error!(CssAtomSet::ATOMS, WebkitTransitionStyleValue, "invalid!!!!");
1274 }
1275
1276 #[test]
1277 fn size_test_flex() {
1278 assert_eq!(std::mem::size_of::<WebkitFlexStyleValue>(), std::mem::size_of::<crate::values::FlexStyleValue>());
1279 }
1280
1281 #[test]
1282 fn test_flex_parses() {
1283 assert_parse!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "none");
1284 assert_parse!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "1");
1285 assert_parse!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "1 1 auto");
1286 }
1287
1288 #[test]
1289 fn test_flex_errors() {
1290 assert_peek_false!(CssAtomSet::ATOMS, WebkitFlexStyleValue, "invalid");
1291 }
1292
1293 #[test]
1294 fn size_test_order() {
1295 assert_eq!(std::mem::size_of::<WebkitOrderStyleValue>(), std::mem::size_of::<crate::values::OrderStyleValue>());
1296 }
1297
1298 #[test]
1299 fn test_order_parses() {
1300 assert_parse!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "0");
1301 assert_parse!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "-1");
1302 assert_parse!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "5");
1303 }
1304
1305 #[test]
1306 fn test_order_errors() {
1307 assert_peek_false!(CssAtomSet::ATOMS, WebkitOrderStyleValue, "none");
1308 }
1309
1310 #[test]
1311 fn size_test_appearance() {
1312 assert_eq!(std::mem::size_of::<WebkitAppearanceStyleValue>(), 20);
1313 }
1314
1315 #[test]
1316 fn test_appearance_parses() {
1317 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "none");
1318 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "auto");
1319 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "textfield");
1320 assert_parse!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "button");
1321 }
1322
1323 #[test]
1324 fn test_appearance_errors() {
1325 assert_peek_false!(CssAtomSet::ATOMS, WebkitAppearanceStyleValue, "invalid");
1326 }
1327
1328 #[test]
1329 fn size_test_transform() {
1330 assert_eq!(std::mem::size_of::<WebkitTransformStyleValue>(), 32);
1331 }
1332
1333 #[test]
1334 fn test_transform_parses() {
1335 assert_parse!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "none");
1336 assert_parse!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "rotate(45deg)");
1337 assert_parse!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "scale(-1, 1)");
1338 }
1339
1340 #[test]
1341 fn test_transform_errors() {
1342 assert_peek_false!(CssAtomSet::ATOMS, WebkitTransformStyleValue, "invalid");
1343 }
1344
1345 #[test]
1346 fn size_test_font_smoothing() {
1347 assert_eq!(std::mem::size_of::<WebkitFontSmoothingStyleValue>(), 16);
1348 }
1349
1350 #[test]
1351 fn test_font_smoothing_parses() {
1352 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "auto");
1353 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "none");
1354 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "antialiased");
1355 assert_parse!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "subpixel-antialiased");
1356 }
1357
1358 #[test]
1359 fn test_font_smoothing_errors() {
1360 assert_peek_false!(CssAtomSet::ATOMS, WebkitFontSmoothingStyleValue, "invalid");
1361 }
1362
1363 #[test]
1364 fn size_test_text_size_adjust() {
1365 assert_eq!(std::mem::size_of::<WebkitTextSizeAdjustStyleValue>(), 16);
1366 }
1367
1368 #[test]
1369 fn test_text_size_adjust_parses() {
1370 assert_parse!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "auto");
1371 assert_parse!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "none");
1372 assert_parse!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "100%");
1373 }
1374
1375 #[test]
1376 fn test_text_size_adjust_errors() {
1377 assert_peek_false!(CssAtomSet::ATOMS, WebkitTextSizeAdjustStyleValue, "invalid");
1378 }
1379
1380 #[test]
1381 fn size_test_animation_delay() {
1382 assert_eq!(
1383 std::mem::size_of::<WebkitAnimationDelayStyleValue>(),
1384 std::mem::size_of::<crate::values::AnimationDelayStyleValue>()
1385 );
1386 }
1387
1388 #[test]
1389 fn test_animation_delay_parses() {
1390 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDelayStyleValue, "0s");
1391 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDelayStyleValue, "0.5s, 1s");
1392 }
1393
1394 #[test]
1395 fn test_animation_delay_errors() {
1396 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationDelayStyleValue, "invalid");
1397 }
1398
1399 #[test]
1400 fn size_test_animation_duration() {
1401 assert_eq!(
1402 std::mem::size_of::<WebkitAnimationDurationStyleValue>(),
1403 std::mem::size_of::<crate::values::AnimationDurationStyleValue>()
1404 );
1405 }
1406
1407 #[test]
1408 fn test_animation_duration_parses() {
1409 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "auto");
1410 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "0.3s");
1411 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "1s, 2s");
1412 }
1413
1414 #[test]
1415 fn test_animation_duration_errors() {
1416 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationDurationStyleValue, "invalid");
1417 }
1418
1419 #[test]
1420 fn size_test_animation_fill_mode() {
1421 assert_eq!(
1422 std::mem::size_of::<WebkitAnimationFillModeStyleValue>(),
1423 std::mem::size_of::<crate::values::AnimationFillModeStyleValue>()
1424 );
1425 }
1426
1427 #[test]
1428 fn test_animation_fill_mode_parses() {
1429 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "none");
1430 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "forwards");
1431 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "both");
1432 }
1433
1434 #[test]
1435 fn test_animation_fill_mode_errors() {
1436 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationFillModeStyleValue, "invalid");
1437 }
1438
1439 #[test]
1440 fn size_test_animation_iteration_count() {
1441 assert_eq!(
1442 std::mem::size_of::<WebkitAnimationIterationCountStyleValue>(),
1443 std::mem::size_of::<crate::values::AnimationIterationCountStyleValue>()
1444 );
1445 }
1446
1447 #[test]
1448 fn test_animation_iteration_count_parses() {
1449 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "1");
1450 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "infinite");
1451 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "3");
1452 }
1453
1454 #[test]
1455 fn test_animation_iteration_count_errors() {
1456 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationIterationCountStyleValue, "invalid");
1457 }
1458
1459 #[test]
1460 fn size_test_animation_name() {
1461 assert_eq!(
1462 std::mem::size_of::<WebkitAnimationNameStyleValue>(),
1463 std::mem::size_of::<crate::values::AnimationNameStyleValue>()
1464 );
1465 }
1466
1467 #[test]
1468 fn test_animation_name_parses() {
1469 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "none");
1470 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "my-animation");
1471 }
1472
1473 #[test]
1474 fn test_animation_name_errors() {
1475 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "");
1476 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationNameStyleValue, "1px");
1477 }
1478
1479 #[test]
1480 fn size_test_animation_timing_function() {
1481 assert_eq!(
1482 std::mem::size_of::<WebkitAnimationTimingFunctionStyleValue>(),
1483 std::mem::size_of::<crate::values::AnimationTimingFunctionStyleValue>()
1484 );
1485 }
1486
1487 #[test]
1488 fn test_animation_timing_function_parses() {
1489 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "ease");
1490 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "linear");
1491 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "ease-in-out");
1492 assert_parse!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "cubic-bezier(0.4, 0, 0.2, 1)");
1493 }
1494
1495 #[test]
1496 fn test_animation_timing_function_errors() {
1497 assert_peek_false!(CssAtomSet::ATOMS, WebkitAnimationTimingFunctionStyleValue, "invalid");
1498 }
1499
1500 #[test]
1501 fn size_test_backface_visibility() {
1502 assert_eq!(
1503 std::mem::size_of::<WebkitBackfaceVisibilityStyleValue>(),
1504 std::mem::size_of::<crate::values::BackfaceVisibilityStyleValue>()
1505 );
1506 }
1507
1508 #[test]
1509 fn test_backface_visibility_parses() {
1510 assert_parse!(CssAtomSet::ATOMS, WebkitBackfaceVisibilityStyleValue, "visible");
1511 assert_parse!(CssAtomSet::ATOMS, WebkitBackfaceVisibilityStyleValue, "hidden");
1512 }
1513
1514 #[test]
1515 fn test_backface_visibility_errors() {
1516 assert_peek_false!(CssAtomSet::ATOMS, WebkitBackfaceVisibilityStyleValue, "invalid");
1517 }
1518
1519 #[test]
1520 fn size_test_tap_highlight_color() {
1521 assert_eq!(
1522 std::mem::size_of::<WebkitTapHighlightColorStyleValue>(),
1523 std::mem::size_of::<crate::values::BackgroundColorStyleValue>()
1524 );
1525 }
1526
1527 #[test]
1528 fn test_tap_highlight_color_parses() {
1529 assert_parse!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "transparent");
1530 assert_parse!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "red");
1531 assert_parse!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "rgba(0, 0, 0, 0)");
1532 }
1533
1534 #[test]
1535 fn test_tap_highlight_color_errors() {
1536 assert_peek_false!(CssAtomSet::ATOMS, WebkitTapHighlightColorStyleValue, "invalid");
1537 }
1538
1539 #[test]
1540 fn size_test_transition_duration() {
1541 assert_eq!(
1542 std::mem::size_of::<WebkitTransitionDurationStyleValue>(),
1543 std::mem::size_of::<crate::values::TransitionDurationStyleValue>()
1544 );
1545 }
1546
1547 #[test]
1548 fn test_transition_duration_parses() {
1549 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "0s");
1550 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "0.3s");
1551 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "1s, 200ms");
1552 }
1553
1554 #[test]
1555 fn test_transition_duration_errors() {
1556 assert_peek_false!(CssAtomSet::ATOMS, WebkitTransitionDurationStyleValue, "invalid");
1557 }
1558
1559 #[test]
1560 fn size_test_transition_timing_function() {
1561 assert_eq!(
1562 std::mem::size_of::<WebkitTransitionTimingFunctionStyleValue>(),
1563 std::mem::size_of::<crate::values::TransitionTimingFunctionStyleValue>()
1564 );
1565 }
1566
1567 #[test]
1568 fn test_transition_timing_function_parses() {
1569 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "ease");
1570 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "linear");
1571 assert_parse!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "cubic-bezier(0.4, 0, 0.2, 1)");
1572 }
1573
1574 #[test]
1575 fn test_transition_timing_function_errors() {
1576 assert_peek_false!(CssAtomSet::ATOMS, WebkitTransitionTimingFunctionStyleValue, "invalid");
1577 }
1578
1579 #[test]
1580 fn test_webkit_perspective_parses() {
1581 assert_parse!(CssAtomSet::ATOMS, WebkitPerspectiveStyleValue, "none");
1582 assert_parse!(CssAtomSet::ATOMS, WebkitPerspectiveStyleValue, "800px");
1583 }
1584
1585 #[test]
1586 fn test_webkit_perspective_errors() {
1587 assert_peek_false!(CssAtomSet::ATOMS, WebkitPerspectiveStyleValue, "invalid");
1588 }
1589}