Grid: Add support for repeat() with an integer repetition count (#342)
1#[allow(dead_code)]
2#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3enum WritingMode {
4 Horizontal,
5 Vertical,
6}
7#[allow(dead_code)]
8fn measure_standard_text(
9 known_dimensions: taffy::geometry::Size<Option<f32>>,
10 available_space: taffy::geometry::Size<taffy::style::AvailableSpace>,
11 text_content: &str,
12 writing_mode: WritingMode,
13 _aspect_ratio: Option<f32>,
14) -> taffy::geometry::Size<f32> {
15 use taffy::axis::AbsoluteAxis;
16 use taffy::prelude::*;
17 const ZWS: char = '\u{200B}';
18 const H_WIDTH: f32 = 10.0;
19 const H_HEIGHT: f32 = 10.0;
20 if let Size { width: Some(width), height: Some(height) } = known_dimensions {
21 return Size { width, height };
22 }
23 let inline_axis = match writing_mode {
24 WritingMode::Horizontal => AbsoluteAxis::Horizontal,
25 WritingMode::Vertical => AbsoluteAxis::Vertical,
26 };
27 let block_axis = inline_axis.other_axis();
28 let lines: Vec<&str> = text_content.split(ZWS).collect();
29 if lines.is_empty() {
30 return Size::ZERO;
31 }
32 let min_line_length: usize = lines.iter().map(|line| line.len()).max().unwrap_or(0);
33 let max_line_length: usize = lines.iter().map(|line| line.len()).sum();
34 let inline_size =
35 known_dimensions.get_abs(inline_axis).unwrap_or_else(|| match available_space.get_abs(inline_axis) {
36 AvailableSpace::MinContent => min_line_length as f32 * H_WIDTH,
37 AvailableSpace::MaxContent => max_line_length as f32 * H_WIDTH,
38 AvailableSpace::Definite(inline_size) => {
39 inline_size.min(max_line_length as f32 * H_WIDTH).max(min_line_length as f32 * H_WIDTH)
40 }
41 });
42 let block_size = known_dimensions.get_abs(block_axis).unwrap_or_else(|| {
43 let inline_line_length = (inline_size / H_WIDTH).floor() as usize;
44 let mut line_count = 1;
45 let mut current_line_length = 0;
46 for line in &lines {
47 if current_line_length + line.len() > inline_line_length {
48 if current_line_length > 0 {
49 line_count += 1
50 };
51 current_line_length = line.len();
52 } else {
53 current_line_length += line.len();
54 };
55 }
56 (line_count as f32) * H_HEIGHT
57 });
58 match writing_mode {
59 WritingMode::Horizontal => Size { width: inline_size, height: block_size },
60 WritingMode::Vertical => Size { width: block_size, height: inline_size },
61 }
62}
63mod absolute_aspect_ratio_aspect_ratio_overrides_height_of_full_inset;
64mod absolute_aspect_ratio_fill_height;
65mod absolute_aspect_ratio_fill_height_from_inset;
66mod absolute_aspect_ratio_fill_max_height;
67mod absolute_aspect_ratio_fill_max_width;
68mod absolute_aspect_ratio_fill_min_height;
69mod absolute_aspect_ratio_fill_min_width;
70mod absolute_aspect_ratio_fill_width;
71mod absolute_aspect_ratio_fill_width_from_inset;
72mod absolute_aspect_ratio_height_overrides_inset;
73mod absolute_aspect_ratio_width_overrides_inset;
74mod absolute_child_with_cross_margin;
75mod absolute_child_with_main_margin;
76mod absolute_child_with_max_height;
77mod absolute_child_with_max_height_larger_shrinkable_grandchild;
78mod absolute_layout_align_items_and_justify_content_center;
79mod absolute_layout_align_items_and_justify_content_center_and_bottom_position;
80mod absolute_layout_align_items_and_justify_content_center_and_left_position;
81mod absolute_layout_align_items_and_justify_content_center_and_right_position;
82mod absolute_layout_align_items_and_justify_content_center_and_top_position;
83mod absolute_layout_align_items_and_justify_content_flex_end;
84mod absolute_layout_align_items_center;
85mod absolute_layout_align_items_center_on_child_only;
86mod absolute_layout_child_order;
87mod absolute_layout_in_wrap_reverse_column_container;
88mod absolute_layout_in_wrap_reverse_column_container_flex_end;
89mod absolute_layout_in_wrap_reverse_row_container;
90mod absolute_layout_in_wrap_reverse_row_container_flex_end;
91mod absolute_layout_justify_content_center;
92mod absolute_layout_no_size;
93mod absolute_layout_percentage_bottom_based_on_parent_height;
94mod absolute_layout_percentage_height;
95mod absolute_layout_row_width_height_end_bottom;
96mod absolute_layout_start_top_end_bottom;
97mod absolute_layout_width_height_end_bottom;
98mod absolute_layout_width_height_start_top;
99mod absolute_layout_width_height_start_top_end_bottom;
100mod absolute_layout_within_border;
101mod absolute_margin_bottom_left;
102mod absolute_minmax_bottom_right_max;
103mod absolute_minmax_bottom_right_min_max;
104mod absolute_minmax_bottom_right_min_max_preferred;
105mod absolute_minmax_top_left_bottom_right_max;
106mod absolute_minmax_top_left_bottom_right_min_max;
107mod align_baseline;
108mod align_baseline_child;
109mod align_baseline_child_margin;
110mod align_baseline_child_margin_percent;
111mod align_baseline_child_multiline;
112mod align_baseline_child_multiline_no_override_on_secondline;
113mod align_baseline_child_multiline_override;
114mod align_baseline_child_padding;
115mod align_baseline_child_top;
116mod align_baseline_child_top2;
117mod align_baseline_column;
118mod align_baseline_double_nested_child;
119mod align_baseline_multiline;
120mod align_baseline_multiline_column;
121mod align_baseline_multiline_column2;
122mod align_baseline_multiline_row_and_column;
123mod align_baseline_nested_child;
124mod align_baseline_nested_column;
125mod align_center_should_size_based_on_content;
126mod align_content_flex_end;
127mod align_content_flex_start;
128mod align_content_flex_start_with_flex;
129mod align_content_flex_start_without_height_on_children;
130mod align_content_not_stretch_with_align_items_stretch;
131mod align_content_space_around_single_line;
132mod align_content_space_around_wrapped;
133mod align_content_space_between_single_line;
134mod align_content_space_between_wrapped;
135mod align_content_space_evenly_single_line;
136mod align_content_space_evenly_wrapped;
137mod align_content_spacearound;
138mod align_content_spacebetween;
139mod align_content_stretch;
140mod align_content_stretch_column;
141mod align_content_stretch_is_not_overriding_align_items;
142mod align_content_stretch_row;
143mod align_content_stretch_row_with_children;
144mod align_content_stretch_row_with_fixed_height;
145mod align_content_stretch_row_with_flex;
146mod align_content_stretch_row_with_flex_no_shrink;
147mod align_content_stretch_row_with_margin;
148mod align_content_stretch_row_with_max_height;
149mod align_content_stretch_row_with_min_height;
150mod align_content_stretch_row_with_padding;
151mod align_content_stretch_row_with_single_row;
152mod align_flex_start_with_shrinking_children;
153mod align_flex_start_with_shrinking_children_with_stretch;
154mod align_flex_start_with_stretching_children;
155mod align_items_center;
156mod align_items_center_child_with_margin_bigger_than_parent;
157mod align_items_center_child_without_margin_bigger_than_parent;
158mod align_items_center_justify_content_center;
159mod align_items_center_min_max_with_padding;
160mod align_items_center_with_child_margin;
161mod align_items_center_with_child_top;
162mod align_items_flex_end;
163mod align_items_flex_end_child_with_margin_bigger_than_parent;
164mod align_items_flex_end_child_without_margin_bigger_than_parent;
165mod align_items_flex_start;
166mod align_items_min_max;
167mod align_items_stretch;
168mod align_items_stretch_min_cross;
169mod align_self_baseline;
170mod align_self_center;
171mod align_self_center_undefined_max_height;
172mod align_self_flex_end;
173mod align_self_flex_end_override_flex_start;
174mod align_self_flex_start;
175mod align_stretch_should_size_based_on_parent;
176mod android_news_feed;
177mod aspect_ratio_flex_column_fill_height;
178mod aspect_ratio_flex_column_fill_max_height;
179mod aspect_ratio_flex_column_fill_max_width;
180mod aspect_ratio_flex_column_fill_min_height;
181mod aspect_ratio_flex_column_fill_min_width;
182mod aspect_ratio_flex_column_fill_width;
183mod aspect_ratio_flex_column_fill_width_flex;
184mod aspect_ratio_flex_column_stretch_fill_height;
185mod aspect_ratio_flex_column_stretch_fill_max_height;
186mod aspect_ratio_flex_column_stretch_fill_max_width;
187mod aspect_ratio_flex_column_stretch_fill_width;
188mod aspect_ratio_flex_row_fill_height;
189mod aspect_ratio_flex_row_fill_max_height;
190mod aspect_ratio_flex_row_fill_max_width;
191mod aspect_ratio_flex_row_fill_min_height;
192mod aspect_ratio_flex_row_fill_min_width;
193mod aspect_ratio_flex_row_fill_width;
194mod aspect_ratio_flex_row_fill_width_flex;
195mod aspect_ratio_flex_row_stretch_fill_height;
196mod aspect_ratio_flex_row_stretch_fill_max_height;
197mod aspect_ratio_flex_row_stretch_fill_max_width;
198mod aspect_ratio_flex_row_stretch_fill_width;
199mod border_center_child;
200mod border_container_match_child;
201mod border_flex_child;
202mod border_no_child;
203mod border_no_size;
204mod border_stretch_child;
205mod child_min_max_width_flexing;
206mod child_with_padding_align_end;
207mod container_with_unsized_child;
208mod display_none;
209mod display_none_absolute_child;
210mod display_none_fixed_size;
211mod display_none_with_child;
212mod display_none_with_margin;
213mod display_none_with_position;
214mod display_none_with_position_absolute;
215mod flex_basis_and_main_dimen_set_when_flexing;
216mod flex_basis_flex_grow_column;
217mod flex_basis_flex_grow_row;
218mod flex_basis_flex_shrink_column;
219mod flex_basis_flex_shrink_row;
220mod flex_basis_larger_than_content_column;
221mod flex_basis_larger_than_content_row;
222mod flex_basis_overrides_main_size;
223mod flex_basis_slightly_smaller_then_content_with_flex_grow_large_size;
224mod flex_basis_smaller_than_content_column;
225mod flex_basis_smaller_than_content_row;
226mod flex_basis_smaller_than_main_dimen_column;
227mod flex_basis_smaller_than_main_dimen_row;
228mod flex_basis_smaller_then_content_with_flex_grow_large_size;
229mod flex_basis_smaller_then_content_with_flex_grow_small_size;
230mod flex_basis_smaller_then_content_with_flex_grow_unconstraint_size;
231mod flex_basis_smaller_then_content_with_flex_grow_very_large_size;
232mod flex_basis_unconstraint_column;
233mod flex_basis_unconstraint_row;
234mod flex_basis_zero_undefined_main_size;
235mod flex_direction_column;
236mod flex_direction_column_no_height;
237mod flex_direction_column_reverse;
238mod flex_direction_column_reverse_no_height;
239mod flex_direction_row;
240mod flex_direction_row_no_width;
241mod flex_direction_row_reverse;
242mod flex_grow_child;
243mod flex_grow_flex_basis_percent_min_max;
244mod flex_grow_height_maximized;
245mod flex_grow_in_at_most_container;
246mod flex_grow_less_than_factor_one;
247mod flex_grow_root_minimized;
248mod flex_grow_shrink_at_most;
249mod flex_grow_to_min;
250mod flex_grow_within_constrained_max_column;
251mod flex_grow_within_constrained_max_row;
252mod flex_grow_within_constrained_max_width;
253mod flex_grow_within_constrained_min_column;
254mod flex_grow_within_constrained_min_max_column;
255mod flex_grow_within_constrained_min_row;
256mod flex_grow_within_max_width;
257mod flex_root_ignored;
258mod flex_shrink_by_outer_margin_with_max_size;
259mod flex_shrink_flex_grow_child_flex_shrink_other_child;
260mod flex_shrink_flex_grow_row;
261mod flex_shrink_to_zero;
262mod flex_wrap_align_stretch_fits_one_row;
263mod flex_wrap_children_with_min_main_overriding_flex_basis;
264mod flex_wrap_wrap_to_child_height;
265mod gap_column_gap_child_margins;
266mod gap_column_gap_determines_parent_width;
267mod gap_column_gap_flexible;
268mod gap_column_gap_flexible_undefined_parent;
269mod gap_column_gap_inflexible;
270mod gap_column_gap_inflexible_undefined_parent;
271mod gap_column_gap_justify_center;
272mod gap_column_gap_justify_flex_end;
273mod gap_column_gap_justify_flex_start;
274mod gap_column_gap_justify_space_around;
275mod gap_column_gap_justify_space_between;
276mod gap_column_gap_justify_space_evenly;
277mod gap_column_gap_mixed_flexible;
278mod gap_column_gap_percentage_cyclic_partially_shrinkable;
279mod gap_column_gap_percentage_cyclic_shrinkable;
280mod gap_column_gap_percentage_cyclic_unshrinkable;
281mod gap_column_gap_percentage_flexible;
282mod gap_column_gap_percentage_flexible_with_padding;
283mod gap_column_gap_percentage_inflexible;
284mod gap_column_gap_row_gap_wrapping;
285mod gap_column_gap_wrap_align_center;
286mod gap_column_gap_wrap_align_flex_end;
287mod gap_column_gap_wrap_align_flex_start;
288mod gap_column_gap_wrap_align_space_around;
289mod gap_column_gap_wrap_align_space_between;
290mod gap_column_gap_wrap_align_stretch;
291mod gap_column_row_gap_wrapping;
292mod gap_percentage_row_gap_wrapping;
293mod gap_row_gap_align_items_end;
294mod gap_row_gap_align_items_stretch;
295mod gap_row_gap_column_child_margins;
296mod gap_row_gap_determines_parent_height;
297mod gap_row_gap_row_wrap_child_margins;
298#[cfg(feature = "grid")]
299mod grid_absolute_align_self_sized_all;
300#[cfg(feature = "grid")]
301mod grid_absolute_column_end;
302#[cfg(feature = "grid")]
303mod grid_absolute_column_start;
304#[cfg(feature = "grid")]
305mod grid_absolute_container_bottom_left;
306#[cfg(feature = "grid")]
307mod grid_absolute_container_bottom_left_margin;
308#[cfg(feature = "grid")]
309mod grid_absolute_container_left_overrides_right;
310#[cfg(feature = "grid")]
311mod grid_absolute_container_left_right;
312#[cfg(feature = "grid")]
313mod grid_absolute_container_left_right_margin;
314#[cfg(feature = "grid")]
315mod grid_absolute_container_negative_position;
316#[cfg(feature = "grid")]
317mod grid_absolute_container_negative_position_margin;
318#[cfg(feature = "grid")]
319mod grid_absolute_container_top_bottom;
320#[cfg(feature = "grid")]
321mod grid_absolute_container_top_bottom_margin;
322#[cfg(feature = "grid")]
323mod grid_absolute_container_top_right;
324#[cfg(feature = "grid")]
325mod grid_absolute_container_top_right_margin;
326#[cfg(feature = "grid")]
327mod grid_absolute_justify_self_sized_all;
328#[cfg(feature = "grid")]
329mod grid_absolute_layout_within_border;
330#[cfg(feature = "grid")]
331mod grid_absolute_layout_within_border_static;
332#[cfg(feature = "grid")]
333mod grid_absolute_row_end;
334#[cfg(feature = "grid")]
335mod grid_absolute_row_start;
336#[cfg(feature = "grid")]
337mod grid_absolute_top_overrides_bottom;
338#[cfg(feature = "grid")]
339mod grid_absolute_with_padding;
340#[cfg(feature = "grid")]
341mod grid_absolute_with_padding_and_margin;
342#[cfg(feature = "grid")]
343mod grid_align_content_center;
344#[cfg(feature = "grid")]
345mod grid_align_content_end;
346#[cfg(feature = "grid")]
347mod grid_align_content_end_with_padding_border;
348#[cfg(feature = "grid")]
349mod grid_align_content_space_around;
350#[cfg(feature = "grid")]
351mod grid_align_content_space_around_with_padding_border;
352#[cfg(feature = "grid")]
353mod grid_align_content_space_between;
354#[cfg(feature = "grid")]
355mod grid_align_content_space_between_with_padding_border;
356#[cfg(feature = "grid")]
357mod grid_align_content_space_evenly;
358#[cfg(feature = "grid")]
359mod grid_align_content_space_evenly_with_padding_border;
360#[cfg(feature = "grid")]
361mod grid_align_content_start;
362#[cfg(feature = "grid")]
363mod grid_align_content_start_with_padding_border;
364#[cfg(feature = "grid")]
365mod grid_align_items_sized_center;
366#[cfg(feature = "grid")]
367mod grid_align_items_sized_end;
368#[cfg(feature = "grid")]
369mod grid_align_items_sized_start;
370#[cfg(feature = "grid")]
371mod grid_align_items_sized_stretch;
372#[cfg(feature = "grid")]
373mod grid_align_self_sized_all;
374#[cfg(feature = "grid")]
375mod grid_aspect_ratio_absolute_aspect_ratio_overrides_height_of_full_inset;
376#[cfg(feature = "grid")]
377mod grid_aspect_ratio_absolute_fill_height_from_inset;
378#[cfg(feature = "grid")]
379mod grid_aspect_ratio_absolute_fill_width_from_inset;
380#[cfg(feature = "grid")]
381mod grid_aspect_ratio_absolute_height_overrides_inset;
382#[cfg(feature = "grid")]
383mod grid_aspect_ratio_absolute_width_overrides_inset;
384#[cfg(feature = "grid")]
385mod grid_aspect_ratio_child_fill_content_height;
386#[cfg(feature = "grid")]
387mod grid_aspect_ratio_child_fill_content_width;
388#[cfg(feature = "grid")]
389mod grid_aspect_ratio_fill_child_height;
390#[cfg(feature = "grid")]
391mod grid_aspect_ratio_fill_child_max_height;
392#[cfg(feature = "grid")]
393mod grid_aspect_ratio_fill_child_max_width;
394#[cfg(feature = "grid")]
395mod grid_aspect_ratio_fill_child_min_height;
396#[cfg(feature = "grid")]
397mod grid_aspect_ratio_fill_child_min_width;
398#[cfg(feature = "grid")]
399mod grid_aspect_ratio_fill_child_width;
400#[cfg(feature = "grid")]
401mod grid_aspect_ratio_overriden_by_explicit_sizes;
402#[cfg(feature = "grid")]
403mod grid_aspect_ratio_overriden_by_explicit_sizes_flex;
404#[cfg(feature = "grid")]
405mod grid_auto_columns_fixed_width;
406#[cfg(feature = "grid")]
407mod grid_auto_fill_fixed_size;
408#[cfg(feature = "grid")]
409mod grid_auto_fill_with_empty_auto_track;
410#[cfg(feature = "grid")]
411mod grid_auto_fit_with_empty_auto_track;
412#[cfg(feature = "grid")]
413mod grid_auto_single_item;
414#[cfg(feature = "grid")]
415mod grid_auto_single_item_fixed_width;
416#[cfg(feature = "grid")]
417mod grid_auto_single_item_fixed_width_with_definite_width;
418#[cfg(feature = "grid")]
419mod grid_basic;
420#[cfg(feature = "grid")]
421mod grid_basic_implicit_tracks;
422#[cfg(feature = "grid")]
423mod grid_basic_with_overflow;
424#[cfg(feature = "grid")]
425mod grid_basic_with_padding;
426#[cfg(feature = "grid")]
427mod grid_fit_content_percent_definite_argument;
428#[cfg(feature = "grid")]
429mod grid_fit_content_percent_definite_max_content;
430#[cfg(feature = "grid")]
431mod grid_fit_content_percent_definite_min_content;
432#[cfg(feature = "grid")]
433mod grid_fit_content_percent_indefinite_argument;
434#[cfg(feature = "grid")]
435mod grid_fit_content_percent_indefinite_max_content;
436#[cfg(feature = "grid")]
437mod grid_fit_content_percent_indefinite_min_content;
438#[cfg(feature = "grid")]
439mod grid_fit_content_points_argument;
440#[cfg(feature = "grid")]
441mod grid_fit_content_points_max_content;
442#[cfg(feature = "grid")]
443mod grid_fit_content_points_min_content;
444#[cfg(feature = "grid")]
445mod grid_fr_auto_no_sized_items;
446#[cfg(feature = "grid")]
447mod grid_fr_auto_single_item;
448#[cfg(feature = "grid")]
449mod grid_fr_fixed_size_no_content;
450#[cfg(feature = "grid")]
451mod grid_fr_fixed_size_single_item;
452#[cfg(feature = "grid")]
453mod grid_gap;
454#[cfg(feature = "grid")]
455mod grid_hidden;
456#[cfg(feature = "grid")]
457mod grid_justify_content_center;
458#[cfg(feature = "grid")]
459mod grid_justify_content_center_with_padding_border;
460#[cfg(feature = "grid")]
461mod grid_justify_content_end;
462#[cfg(feature = "grid")]
463mod grid_justify_content_end_with_padding_border;
464#[cfg(feature = "grid")]
465mod grid_justify_content_space_around;
466#[cfg(feature = "grid")]
467mod grid_justify_content_space_around_with_padding_border;
468#[cfg(feature = "grid")]
469mod grid_justify_content_space_between;
470#[cfg(feature = "grid")]
471mod grid_justify_content_space_between_with_padding_border;
472#[cfg(feature = "grid")]
473mod grid_justify_content_space_evenly;
474#[cfg(feature = "grid")]
475mod grid_justify_content_space_evenly_with_padding_border;
476#[cfg(feature = "grid")]
477mod grid_justify_content_start;
478#[cfg(feature = "grid")]
479mod grid_justify_content_start_with_padding_border;
480#[cfg(feature = "grid")]
481mod grid_justify_items_sized_center;
482#[cfg(feature = "grid")]
483mod grid_justify_items_sized_end;
484#[cfg(feature = "grid")]
485mod grid_justify_items_sized_start;
486#[cfg(feature = "grid")]
487mod grid_justify_items_sized_stretch;
488#[cfg(feature = "grid")]
489mod grid_justify_self_sized_all;
490#[cfg(feature = "grid")]
491mod grid_margins_auto_margins;
492#[cfg(feature = "grid")]
493mod grid_margins_auto_margins_override_stretch;
494#[cfg(feature = "grid")]
495mod grid_margins_fixed_center;
496#[cfg(feature = "grid")]
497mod grid_margins_fixed_end;
498#[cfg(feature = "grid")]
499mod grid_margins_fixed_start;
500#[cfg(feature = "grid")]
501mod grid_margins_fixed_stretch;
502#[cfg(feature = "grid")]
503mod grid_margins_percent_center;
504#[cfg(feature = "grid")]
505mod grid_margins_percent_end;
506#[cfg(feature = "grid")]
507mod grid_margins_percent_start;
508#[cfg(feature = "grid")]
509mod grid_margins_percent_stretch;
510#[cfg(feature = "grid")]
511mod grid_max_content_maximum_single_item;
512#[cfg(feature = "grid")]
513mod grid_max_content_single_item;
514#[cfg(feature = "grid")]
515mod grid_max_content_single_item_margin_auto;
516#[cfg(feature = "grid")]
517mod grid_max_content_single_item_margin_fixed;
518#[cfg(feature = "grid")]
519mod grid_max_content_single_item_margin_percent;
520#[cfg(feature = "grid")]
521mod grid_max_content_single_item_span_2;
522#[cfg(feature = "grid")]
523mod grid_max_content_single_item_span_2_gap_fixed;
524#[cfg(feature = "grid")]
525mod grid_max_content_single_item_span_2_gap_percent_definite;
526#[cfg(feature = "grid")]
527mod grid_max_content_single_item_span_2_gap_percent_indefinite;
528#[cfg(feature = "grid")]
529mod grid_min_content_flex_column;
530#[cfg(feature = "grid")]
531mod grid_min_content_flex_row;
532#[cfg(feature = "grid")]
533mod grid_min_content_flex_single_item;
534#[cfg(feature = "grid")]
535mod grid_min_content_flex_single_item_margin_auto;
536#[cfg(feature = "grid")]
537mod grid_min_content_flex_single_item_margin_fixed;
538#[cfg(feature = "grid")]
539mod grid_min_content_flex_single_item_margin_percent;
540#[cfg(feature = "grid")]
541mod grid_min_content_maximum_single_item;
542#[cfg(feature = "grid")]
543mod grid_min_content_single_item;
544#[cfg(feature = "grid")]
545mod grid_min_max_column_auto;
546#[cfg(feature = "grid")]
547mod grid_min_max_column_fixed_width_above_range;
548#[cfg(feature = "grid")]
549mod grid_min_max_column_fixed_width_below_range;
550#[cfg(feature = "grid")]
551mod grid_min_max_column_fixed_width_within_range;
552#[cfg(feature = "grid")]
553mod grid_out_of_order_items;
554#[cfg(feature = "grid")]
555mod grid_percent_items_nested_moderate;
556#[cfg(feature = "grid")]
557mod grid_percent_items_nested_with_padding_margin;
558#[cfg(feature = "grid")]
559mod grid_percent_items_width_and_margin;
560#[cfg(feature = "grid")]
561mod grid_percent_items_width_and_padding;
562#[cfg(feature = "grid")]
563mod grid_percent_tracks_definite_overflow;
564#[cfg(feature = "grid")]
565mod grid_percent_tracks_definite_underflow;
566#[cfg(feature = "grid")]
567mod grid_percent_tracks_indefinite_only;
568#[cfg(feature = "grid")]
569mod grid_percent_tracks_indefinite_with_content_overflow;
570#[cfg(feature = "grid")]
571mod grid_percent_tracks_indefinite_with_content_underflow;
572#[cfg(feature = "grid")]
573mod grid_placement_auto_negative;
574#[cfg(feature = "grid")]
575mod grid_placement_definite_in_secondary_axis_with_fully_definite_negative;
576#[cfg(feature = "grid")]
577mod grid_relayout_vertical_text;
578#[cfg(feature = "grid")]
579mod grid_repeat_integer;
580#[cfg(feature = "grid")]
581mod grid_repeat_mixed;
582#[cfg(feature = "grid")]
583mod grid_size_child_fixed_tracks;
584mod justify_content_column_center;
585mod justify_content_column_flex_end;
586mod justify_content_column_flex_start;
587mod justify_content_column_max_height_and_margin;
588mod justify_content_column_min_height_and_margin;
589mod justify_content_column_min_height_and_margin_bottom;
590mod justify_content_column_min_height_and_margin_top;
591mod justify_content_column_space_around;
592mod justify_content_column_space_between;
593mod justify_content_column_space_evenly;
594mod justify_content_min_max;
595mod justify_content_min_width_with_padding_child_width_greater_than_parent;
596mod justify_content_min_width_with_padding_child_width_lower_than_parent;
597mod justify_content_overflow_min_max;
598mod justify_content_row_center;
599mod justify_content_row_flex_end;
600mod justify_content_row_flex_start;
601mod justify_content_row_max_width_and_margin;
602mod justify_content_row_min_width_and_margin;
603mod justify_content_row_space_around;
604mod justify_content_row_space_between;
605mod justify_content_row_space_evenly;
606mod margin_and_flex_column;
607mod margin_and_flex_row;
608mod margin_and_stretch_column;
609mod margin_and_stretch_row;
610mod margin_auto_bottom;
611mod margin_auto_bottom_and_top;
612mod margin_auto_bottom_and_top_justify_center;
613mod margin_auto_left;
614mod margin_auto_left_and_right;
615mod margin_auto_left_and_right_column;
616mod margin_auto_left_and_right_column_and_center;
617mod margin_auto_left_and_right_stretch;
618mod margin_auto_left_child_bigger_than_parent;
619mod margin_auto_left_fix_right_child_bigger_than_parent;
620mod margin_auto_left_right_child_bigger_than_parent;
621mod margin_auto_left_stretching_child;
622mod margin_auto_mutiple_children_column;
623mod margin_auto_mutiple_children_row;
624mod margin_auto_right;
625mod margin_auto_top;
626mod margin_auto_top_and_bottom_stretch;
627mod margin_auto_top_stretching_child;
628mod margin_bottom;
629mod margin_fix_left_auto_right_child_bigger_than_parent;
630mod margin_left;
631mod margin_right;
632mod margin_should_not_be_part_of_max_height;
633mod margin_should_not_be_part_of_max_width;
634mod margin_top;
635mod margin_with_sibling_column;
636mod margin_with_sibling_row;
637mod max_height;
638mod max_height_overrides_height;
639mod max_height_overrides_height_on_root;
640mod max_width;
641mod max_width_overrides_width;
642mod max_width_overrides_width_on_root;
643mod measure_child;
644mod measure_child_absolute;
645mod measure_child_constraint;
646mod measure_child_constraint_padding_parent;
647mod measure_child_with_flex_grow;
648mod measure_child_with_flex_shrink;
649mod measure_flex_basis_overrides_measure;
650mod measure_height_overrides_measure;
651mod measure_remeasure_child_after_growing;
652mod measure_remeasure_child_after_shrinking;
653mod measure_remeasure_child_after_stretching;
654mod measure_root;
655mod measure_stretch_overrides_measure;
656mod measure_width_overrides_measure;
657mod min_height;
658mod min_height_larger_than_height;
659mod min_height_overrides_height;
660mod min_height_overrides_height_on_root;
661mod min_height_overrides_max_height;
662mod min_height_with_nested_fixed_height;
663mod min_max_percent_different_width_height;
664mod min_max_percent_no_width_height;
665mod min_width;
666mod min_width_larger_than_width;
667mod min_width_overrides_max_width;
668mod min_width_overrides_width;
669mod min_width_overrides_width_on_root;
670mod nested_overflowing_child;
671mod nested_overflowing_child_in_constraint_parent;
672mod only_shrinkable_item_with_flex_basis_zero;
673mod overflow_cross_axis;
674mod overflow_main_axis;
675mod padding_align_end_child;
676mod padding_center_child;
677mod padding_container_match_child;
678mod padding_flex_child;
679mod padding_no_child;
680mod padding_no_size;
681mod padding_stretch_child;
682mod parent_wrap_child_size_overflowing_parent;
683mod percent_absolute_position;
684mod percent_within_flex_grow;
685mod percentage_absolute_position;
686mod percentage_container_in_wrapping_container;
687mod percentage_different_width_height;
688mod percentage_different_width_height_column;
689mod percentage_flex_basis;
690mod percentage_flex_basis_cross;
691mod percentage_flex_basis_cross_max_height;
692mod percentage_flex_basis_cross_max_width;
693mod percentage_flex_basis_cross_min_height;
694mod percentage_flex_basis_cross_min_width;
695mod percentage_flex_basis_main_max_height;
696mod percentage_flex_basis_main_max_width;
697mod percentage_flex_basis_main_min_width;
698mod percentage_main_max_height;
699mod percentage_margin_should_calculate_based_only_on_width;
700mod percentage_moderate_complexity;
701mod percentage_multiple_nested_with_padding_margin_and_percentage_values;
702mod percentage_padding_should_calculate_based_only_on_width;
703mod percentage_position_bottom_right;
704mod percentage_position_left_top;
705mod percentage_size_based_on_parent_inner_size;
706mod percentage_size_of_flex_basis;
707mod percentage_width_height;
708mod percentage_width_height_undefined_parent_size;
709mod position_root_with_rtl_should_position_withoutdirection;
710mod relative_position_should_not_nudge_siblings;
711mod rounding_flex_basis_flex_grow_row_prime_number_width;
712mod rounding_flex_basis_flex_grow_row_width_of_100;
713mod rounding_flex_basis_flex_shrink_row;
714mod rounding_flex_basis_overrides_main_size;
715mod rounding_fractial_input_1;
716mod rounding_fractial_input_2;
717mod rounding_fractial_input_3;
718mod rounding_fractial_input_4;
719mod rounding_inner_node_controversy_vertical;
720mod rounding_total_fractial;
721mod rounding_total_fractial_nested;
722mod single_flex_child_after_absolute_child;
723mod size_defined_by_child;
724mod size_defined_by_child_with_border;
725mod size_defined_by_child_with_padding;
726mod size_defined_by_grand_child;
727mod undefined_height_with_min_max;
728mod undefined_width_with_min_max;
729mod undefined_width_with_min_max_row;
730mod width_smaller_then_content_with_flex_grow_large_size;
731mod width_smaller_then_content_with_flex_grow_small_size;
732mod width_smaller_then_content_with_flex_grow_unconstraint_size;
733mod width_smaller_then_content_with_flex_grow_very_large_size;
734mod wrap_child;
735mod wrap_column;
736mod wrap_grandchild;
737mod wrap_nodes_with_content_sizing_margin_cross;
738mod wrap_nodes_with_content_sizing_overflowing_margin;
739mod wrap_reverse_column;
740mod wrap_reverse_column_fixed_size;
741mod wrap_reverse_row;
742mod wrap_reverse_row_align_content_center;
743mod wrap_reverse_row_align_content_flex_start;
744mod wrap_reverse_row_align_content_space_around;
745mod wrap_reverse_row_align_content_stretch;
746mod wrap_reverse_row_single_line_different_size;
747mod wrap_row;
748mod wrap_row_align_items_center;
749mod wrap_row_align_items_flex_end;
750mod wrapped_column_max_height;
751mod wrapped_column_max_height_flex;
752mod wrapped_row_within_align_items_center;
753mod wrapped_row_within_align_items_flex_end;
754mod wrapped_row_within_align_items_flex_start;