1use criterion::{criterion_group, criterion_main, Criterion};
2#[allow(dead_code)]
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4enum WritingMode {
5 Horizontal,
6 Vertical,
7}
8#[allow(dead_code)]
9fn measure_standard_text(
10 known_dimensions: taffy::geometry::Size<Option<f32>>,
11 available_space: taffy::geometry::Size<taffy::style::AvailableSpace>,
12 text_content: &str,
13 writing_mode: WritingMode,
14 _aspect_ratio: Option<f32>,
15) -> taffy::geometry::Size<f32> {
16 use taffy::axis::AbsoluteAxis;
17 use taffy::prelude::*;
18 const ZWS: char = '\u{200B}';
19 const H_WIDTH: f32 = 10.0;
20 const H_HEIGHT: f32 = 10.0;
21 if let Size { width: Some(width), height: Some(height) } = known_dimensions {
22 return Size { width, height };
23 }
24 let inline_axis = match writing_mode {
25 WritingMode::Horizontal => AbsoluteAxis::Horizontal,
26 WritingMode::Vertical => AbsoluteAxis::Vertical,
27 };
28 let block_axis = inline_axis.other_axis();
29 let lines: Vec<&str> = text_content.split(ZWS).collect();
30 if lines.is_empty() {
31 return Size::ZERO;
32 }
33 let min_line_length: usize = lines.iter().map(|line| line.len()).max().unwrap_or(0);
34 let max_line_length: usize = lines.iter().map(|line| line.len()).sum();
35 let inline_size =
36 known_dimensions.get_abs(inline_axis).unwrap_or_else(|| match available_space.get_abs(inline_axis) {
37 AvailableSpace::MinContent => min_line_length as f32 * H_WIDTH,
38 AvailableSpace::MaxContent => max_line_length as f32 * H_WIDTH,
39 AvailableSpace::Definite(inline_size) => {
40 inline_size.min(max_line_length as f32 * H_WIDTH).max(min_line_length as f32 * H_WIDTH)
41 }
42 });
43 let block_size = known_dimensions.get_abs(block_axis).unwrap_or_else(|| {
44 let inline_line_length = (inline_size / H_WIDTH).floor() as usize;
45 let mut line_count = 1;
46 let mut current_line_length = 0;
47 for line in &lines {
48 if current_line_length + line.len() > inline_line_length {
49 if current_line_length > 0 {
50 line_count += 1
51 };
52 current_line_length = line.len();
53 } else {
54 current_line_length += line.len();
55 };
56 }
57 (line_count as f32) * H_HEIGHT
58 });
59 match writing_mode {
60 WritingMode::Horizontal => Size { width: inline_size, height: block_size },
61 WritingMode::Vertical => Size { width: block_size, height: inline_size },
62 }
63}
64mod absolute_aspect_ratio_aspect_ratio_overrides_height_of_full_inset;
65mod absolute_aspect_ratio_fill_height;
66mod absolute_aspect_ratio_fill_height_from_inset;
67mod absolute_aspect_ratio_fill_max_height;
68mod absolute_aspect_ratio_fill_max_width;
69mod absolute_aspect_ratio_fill_min_height;
70mod absolute_aspect_ratio_fill_min_width;
71mod absolute_aspect_ratio_fill_width;
72mod absolute_aspect_ratio_fill_width_from_inset;
73mod absolute_aspect_ratio_height_overrides_inset;
74mod absolute_aspect_ratio_width_overrides_inset;
75mod absolute_child_with_cross_margin;
76mod absolute_child_with_main_margin;
77mod absolute_child_with_max_height;
78mod absolute_child_with_max_height_larger_shrinkable_grandchild;
79mod absolute_layout_align_items_and_justify_content_center;
80mod absolute_layout_align_items_and_justify_content_center_and_bottom_position;
81mod absolute_layout_align_items_and_justify_content_center_and_left_position;
82mod absolute_layout_align_items_and_justify_content_center_and_right_position;
83mod absolute_layout_align_items_and_justify_content_center_and_top_position;
84mod absolute_layout_align_items_and_justify_content_flex_end;
85mod absolute_layout_align_items_center;
86mod absolute_layout_align_items_center_on_child_only;
87mod absolute_layout_child_order;
88mod absolute_layout_in_wrap_reverse_column_container;
89mod absolute_layout_in_wrap_reverse_column_container_flex_end;
90mod absolute_layout_in_wrap_reverse_row_container;
91mod absolute_layout_in_wrap_reverse_row_container_flex_end;
92mod absolute_layout_justify_content_center;
93mod absolute_layout_no_size;
94mod absolute_layout_percentage_bottom_based_on_parent_height;
95mod absolute_layout_percentage_height;
96mod absolute_layout_row_width_height_end_bottom;
97mod absolute_layout_start_top_end_bottom;
98mod absolute_layout_width_height_end_bottom;
99mod absolute_layout_width_height_start_top;
100mod absolute_layout_width_height_start_top_end_bottom;
101mod absolute_layout_within_border;
102mod absolute_margin_bottom_left;
103mod absolute_minmax_bottom_right_max;
104mod absolute_minmax_bottom_right_min_max;
105mod absolute_minmax_bottom_right_min_max_preferred;
106mod absolute_minmax_top_left_bottom_right_max;
107mod absolute_minmax_top_left_bottom_right_min_max;
108mod align_baseline;
109mod align_baseline_child;
110mod align_baseline_child_margin;
111mod align_baseline_child_margin_percent;
112mod align_baseline_child_multiline;
113mod align_baseline_child_multiline_no_override_on_secondline;
114mod align_baseline_child_multiline_override;
115mod align_baseline_child_padding;
116mod align_baseline_child_top;
117mod align_baseline_child_top2;
118mod align_baseline_column;
119mod align_baseline_double_nested_child;
120mod align_baseline_multiline;
121mod align_baseline_multiline_column;
122mod align_baseline_multiline_column2;
123mod align_baseline_multiline_row_and_column;
124mod align_baseline_nested_child;
125mod align_baseline_nested_column;
126mod align_center_should_size_based_on_content;
127mod align_content_flex_end;
128mod align_content_flex_start;
129mod align_content_flex_start_with_flex;
130mod align_content_flex_start_without_height_on_children;
131mod align_content_not_stretch_with_align_items_stretch;
132mod align_content_space_around_single_line;
133mod align_content_space_around_wrapped;
134mod align_content_space_between_single_line;
135mod align_content_space_between_wrapped;
136mod align_content_space_evenly_single_line;
137mod align_content_space_evenly_wrapped;
138mod align_content_spacearound;
139mod align_content_spacebetween;
140mod align_content_stretch;
141mod align_content_stretch_column;
142mod align_content_stretch_is_not_overriding_align_items;
143mod align_content_stretch_row;
144mod align_content_stretch_row_with_children;
145mod align_content_stretch_row_with_fixed_height;
146mod align_content_stretch_row_with_flex;
147mod align_content_stretch_row_with_flex_no_shrink;
148mod align_content_stretch_row_with_margin;
149mod align_content_stretch_row_with_max_height;
150mod align_content_stretch_row_with_min_height;
151mod align_content_stretch_row_with_padding;
152mod align_content_stretch_row_with_single_row;
153mod align_flex_start_with_shrinking_children;
154mod align_flex_start_with_shrinking_children_with_stretch;
155mod align_flex_start_with_stretching_children;
156mod align_items_center;
157mod align_items_center_child_with_margin_bigger_than_parent;
158mod align_items_center_child_without_margin_bigger_than_parent;
159mod align_items_center_justify_content_center;
160mod align_items_center_min_max_with_padding;
161mod align_items_center_with_child_margin;
162mod align_items_center_with_child_top;
163mod align_items_flex_end;
164mod align_items_flex_end_child_with_margin_bigger_than_parent;
165mod align_items_flex_end_child_without_margin_bigger_than_parent;
166mod align_items_flex_start;
167mod align_items_min_max;
168mod align_items_stretch;
169mod align_items_stretch_min_cross;
170mod align_self_baseline;
171mod align_self_center;
172mod align_self_center_undefined_max_height;
173mod align_self_flex_end;
174mod align_self_flex_end_override_flex_start;
175mod align_self_flex_start;
176mod align_stretch_should_size_based_on_parent;
177mod android_news_feed;
178mod aspect_ratio_flex_column_fill_height;
179mod aspect_ratio_flex_column_fill_max_height;
180mod aspect_ratio_flex_column_fill_max_width;
181mod aspect_ratio_flex_column_fill_min_height;
182mod aspect_ratio_flex_column_fill_min_width;
183mod aspect_ratio_flex_column_fill_width;
184mod aspect_ratio_flex_column_fill_width_flex;
185mod aspect_ratio_flex_column_stretch_fill_height;
186mod aspect_ratio_flex_column_stretch_fill_max_height;
187mod aspect_ratio_flex_column_stretch_fill_max_width;
188mod aspect_ratio_flex_column_stretch_fill_width;
189mod aspect_ratio_flex_row_fill_height;
190mod aspect_ratio_flex_row_fill_max_height;
191mod aspect_ratio_flex_row_fill_max_width;
192mod aspect_ratio_flex_row_fill_min_height;
193mod aspect_ratio_flex_row_fill_min_width;
194mod aspect_ratio_flex_row_fill_width;
195mod aspect_ratio_flex_row_fill_width_flex;
196mod aspect_ratio_flex_row_stretch_fill_height;
197mod aspect_ratio_flex_row_stretch_fill_max_height;
198mod aspect_ratio_flex_row_stretch_fill_max_width;
199mod aspect_ratio_flex_row_stretch_fill_width;
200mod border_center_child;
201mod border_container_match_child;
202mod border_flex_child;
203mod border_no_child;
204mod border_no_size;
205mod border_stretch_child;
206mod child_min_max_width_flexing;
207mod child_with_padding_align_end;
208mod container_with_unsized_child;
209mod display_none;
210mod display_none_absolute_child;
211mod display_none_fixed_size;
212mod display_none_with_child;
213mod display_none_with_margin;
214mod display_none_with_position;
215mod display_none_with_position_absolute;
216mod flex_basis_and_main_dimen_set_when_flexing;
217mod flex_basis_flex_grow_column;
218mod flex_basis_flex_grow_row;
219mod flex_basis_flex_shrink_column;
220mod flex_basis_flex_shrink_row;
221mod flex_basis_larger_than_content_column;
222mod flex_basis_larger_than_content_row;
223mod flex_basis_overrides_main_size;
224mod flex_basis_slightly_smaller_then_content_with_flex_grow_large_size;
225mod flex_basis_smaller_than_content_column;
226mod flex_basis_smaller_than_content_row;
227mod flex_basis_smaller_than_main_dimen_column;
228mod flex_basis_smaller_than_main_dimen_row;
229mod flex_basis_smaller_then_content_with_flex_grow_large_size;
230mod flex_basis_smaller_then_content_with_flex_grow_small_size;
231mod flex_basis_smaller_then_content_with_flex_grow_unconstraint_size;
232mod flex_basis_smaller_then_content_with_flex_grow_very_large_size;
233mod flex_basis_unconstraint_column;
234mod flex_basis_unconstraint_row;
235mod flex_basis_zero_undefined_main_size;
236mod flex_column_relative_all_sides;
237mod flex_direction_column;
238mod flex_direction_column_no_height;
239mod flex_direction_column_reverse;
240mod flex_direction_column_reverse_no_height;
241mod flex_direction_row;
242mod flex_direction_row_no_width;
243mod flex_direction_row_reverse;
244mod flex_grow_child;
245mod flex_grow_flex_basis_percent_min_max;
246mod flex_grow_height_maximized;
247mod flex_grow_in_at_most_container;
248mod flex_grow_less_than_factor_one;
249mod flex_grow_root_minimized;
250mod flex_grow_shrink_at_most;
251mod flex_grow_to_min;
252mod flex_grow_within_constrained_max_column;
253mod flex_grow_within_constrained_max_row;
254mod flex_grow_within_constrained_max_width;
255mod flex_grow_within_constrained_min_column;
256mod flex_grow_within_constrained_min_max_column;
257mod flex_grow_within_constrained_min_row;
258mod flex_grow_within_max_width;
259mod flex_root_ignored;
260mod flex_row_relative_all_sides;
261mod flex_shrink_by_outer_margin_with_max_size;
262mod flex_shrink_flex_grow_child_flex_shrink_other_child;
263mod flex_shrink_flex_grow_row;
264mod flex_shrink_to_zero;
265mod flex_wrap_align_stretch_fits_one_row;
266mod flex_wrap_children_with_min_main_overriding_flex_basis;
267mod flex_wrap_wrap_to_child_height;
268mod gap_column_gap_child_margins;
269mod gap_column_gap_determines_parent_width;
270mod gap_column_gap_flexible;
271mod gap_column_gap_flexible_undefined_parent;
272mod gap_column_gap_inflexible;
273mod gap_column_gap_inflexible_undefined_parent;
274mod gap_column_gap_justify_center;
275mod gap_column_gap_justify_flex_end;
276mod gap_column_gap_justify_flex_start;
277mod gap_column_gap_justify_space_around;
278mod gap_column_gap_justify_space_between;
279mod gap_column_gap_justify_space_evenly;
280mod gap_column_gap_mixed_flexible;
281mod gap_column_gap_percentage_cyclic_partially_shrinkable;
282mod gap_column_gap_percentage_cyclic_shrinkable;
283mod gap_column_gap_percentage_cyclic_unshrinkable;
284mod gap_column_gap_percentage_flexible;
285mod gap_column_gap_percentage_flexible_with_padding;
286mod gap_column_gap_percentage_inflexible;
287mod gap_column_gap_row_gap_wrapping;
288mod gap_column_gap_wrap_align_center;
289mod gap_column_gap_wrap_align_flex_end;
290mod gap_column_gap_wrap_align_flex_start;
291mod gap_column_gap_wrap_align_space_around;
292mod gap_column_gap_wrap_align_space_between;
293mod gap_column_gap_wrap_align_stretch;
294mod gap_column_row_gap_wrapping;
295mod gap_percentage_row_gap_wrapping;
296mod gap_row_gap_align_items_end;
297mod gap_row_gap_align_items_stretch;
298mod gap_row_gap_column_child_margins;
299mod gap_row_gap_determines_parent_height;
300mod gap_row_gap_row_wrap_child_margins;
301#[cfg(feature = "grid")]
302mod grid_absolute_align_self_sized_all;
303#[cfg(feature = "grid")]
304mod grid_absolute_column_end;
305#[cfg(feature = "grid")]
306mod grid_absolute_column_start;
307#[cfg(feature = "grid")]
308mod grid_absolute_container_bottom_left;
309#[cfg(feature = "grid")]
310mod grid_absolute_container_bottom_left_margin;
311#[cfg(feature = "grid")]
312mod grid_absolute_container_left_overrides_right;
313#[cfg(feature = "grid")]
314mod grid_absolute_container_left_right;
315#[cfg(feature = "grid")]
316mod grid_absolute_container_left_right_margin;
317#[cfg(feature = "grid")]
318mod grid_absolute_container_negative_position;
319#[cfg(feature = "grid")]
320mod grid_absolute_container_negative_position_margin;
321#[cfg(feature = "grid")]
322mod grid_absolute_container_top_bottom;
323#[cfg(feature = "grid")]
324mod grid_absolute_container_top_bottom_margin;
325#[cfg(feature = "grid")]
326mod grid_absolute_container_top_right;
327#[cfg(feature = "grid")]
328mod grid_absolute_container_top_right_margin;
329#[cfg(feature = "grid")]
330mod grid_absolute_justify_self_sized_all;
331#[cfg(feature = "grid")]
332mod grid_absolute_layout_within_border;
333#[cfg(feature = "grid")]
334mod grid_absolute_layout_within_border_static;
335#[cfg(feature = "grid")]
336mod grid_absolute_row_end;
337#[cfg(feature = "grid")]
338mod grid_absolute_row_start;
339#[cfg(feature = "grid")]
340mod grid_absolute_top_overrides_bottom;
341#[cfg(feature = "grid")]
342mod grid_absolute_with_padding;
343#[cfg(feature = "grid")]
344mod grid_absolute_with_padding_and_margin;
345#[cfg(feature = "grid")]
346mod grid_align_content_center;
347#[cfg(feature = "grid")]
348mod grid_align_content_end;
349#[cfg(feature = "grid")]
350mod grid_align_content_end_with_padding_border;
351#[cfg(feature = "grid")]
352mod grid_align_content_space_around;
353#[cfg(feature = "grid")]
354mod grid_align_content_space_around_with_padding_border;
355#[cfg(feature = "grid")]
356mod grid_align_content_space_between;
357#[cfg(feature = "grid")]
358mod grid_align_content_space_between_with_padding_border;
359#[cfg(feature = "grid")]
360mod grid_align_content_space_evenly;
361#[cfg(feature = "grid")]
362mod grid_align_content_space_evenly_with_padding_border;
363#[cfg(feature = "grid")]
364mod grid_align_content_start;
365#[cfg(feature = "grid")]
366mod grid_align_content_start_with_padding_border;
367#[cfg(feature = "grid")]
368mod grid_align_items_baseline;
369#[cfg(feature = "grid")]
370mod grid_align_items_baseline_child;
371#[cfg(feature = "grid")]
372mod grid_align_items_baseline_child_margin;
373#[cfg(feature = "grid")]
374mod grid_align_items_baseline_child_margin_percent;
375#[cfg(feature = "grid")]
376mod grid_align_items_baseline_child_multiline;
377#[cfg(feature = "grid")]
378mod grid_align_items_baseline_child_multiline_no_override_on_secondline;
379#[cfg(feature = "grid")]
380mod grid_align_items_baseline_child_multiline_override;
381#[cfg(feature = "grid")]
382mod grid_align_items_baseline_child_padding;
383#[cfg(feature = "grid")]
384mod grid_align_items_baseline_child_top;
385#[cfg(feature = "grid")]
386mod grid_align_items_baseline_child_top2;
387#[cfg(feature = "grid")]
388mod grid_align_items_baseline_complex;
389#[cfg(feature = "grid")]
390mod grid_align_items_baseline_double_nested_child;
391#[cfg(feature = "grid")]
392mod grid_align_items_baseline_multiline;
393#[cfg(feature = "grid")]
394mod grid_align_items_baseline_multiline_column;
395#[cfg(feature = "grid")]
396mod grid_align_items_baseline_multiline_row_and_column;
397#[cfg(feature = "grid")]
398mod grid_align_items_baseline_nested_column;
399#[cfg(feature = "grid")]
400mod grid_align_items_sized_center;
401#[cfg(feature = "grid")]
402mod grid_align_items_sized_end;
403#[cfg(feature = "grid")]
404mod grid_align_items_sized_start;
405#[cfg(feature = "grid")]
406mod grid_align_items_sized_stretch;
407#[cfg(feature = "grid")]
408mod grid_align_self_sized_all;
409#[cfg(feature = "grid")]
410mod grid_aspect_ratio_absolute_aspect_ratio_overrides_height_of_full_inset;
411#[cfg(feature = "grid")]
412mod grid_aspect_ratio_absolute_fill_height_from_inset;
413#[cfg(feature = "grid")]
414mod grid_aspect_ratio_absolute_fill_width_from_inset;
415#[cfg(feature = "grid")]
416mod grid_aspect_ratio_absolute_height_overrides_inset;
417#[cfg(feature = "grid")]
418mod grid_aspect_ratio_absolute_width_overrides_inset;
419#[cfg(feature = "grid")]
420mod grid_aspect_ratio_child_fill_content_height;
421#[cfg(feature = "grid")]
422mod grid_aspect_ratio_child_fill_content_width;
423#[cfg(feature = "grid")]
424mod grid_aspect_ratio_fill_child_height;
425#[cfg(feature = "grid")]
426mod grid_aspect_ratio_fill_child_max_height;
427#[cfg(feature = "grid")]
428mod grid_aspect_ratio_fill_child_max_width;
429#[cfg(feature = "grid")]
430mod grid_aspect_ratio_fill_child_min_height;
431#[cfg(feature = "grid")]
432mod grid_aspect_ratio_fill_child_min_width;
433#[cfg(feature = "grid")]
434mod grid_aspect_ratio_fill_child_width;
435#[cfg(feature = "grid")]
436mod grid_aspect_ratio_overriden_by_explicit_sizes;
437#[cfg(feature = "grid")]
438mod grid_aspect_ratio_overriden_by_explicit_sizes_flex;
439#[cfg(feature = "grid")]
440mod grid_auto_columns_fixed_width;
441#[cfg(feature = "grid")]
442mod grid_auto_fill_fixed_size;
443#[cfg(feature = "grid")]
444mod grid_auto_fill_with_empty_auto_track;
445#[cfg(feature = "grid")]
446mod grid_auto_fit_with_empty_auto_track;
447#[cfg(feature = "grid")]
448mod grid_auto_single_item;
449#[cfg(feature = "grid")]
450mod grid_auto_single_item_fixed_width;
451#[cfg(feature = "grid")]
452mod grid_auto_single_item_fixed_width_with_definite_width;
453#[cfg(feature = "grid")]
454mod grid_basic;
455#[cfg(feature = "grid")]
456mod grid_basic_implicit_tracks;
457#[cfg(feature = "grid")]
458mod grid_basic_with_overflow;
459#[cfg(feature = "grid")]
460mod grid_basic_with_padding;
461#[cfg(feature = "grid")]
462mod grid_fit_content_percent_definite_argument;
463#[cfg(feature = "grid")]
464mod grid_fit_content_percent_definite_max_content;
465#[cfg(feature = "grid")]
466mod grid_fit_content_percent_definite_min_content;
467#[cfg(feature = "grid")]
468mod grid_fit_content_percent_indefinite_argument;
469#[cfg(feature = "grid")]
470mod grid_fit_content_percent_indefinite_max_content;
471#[cfg(feature = "grid")]
472mod grid_fit_content_percent_indefinite_min_content;
473#[cfg(feature = "grid")]
474mod grid_fit_content_points_argument;
475#[cfg(feature = "grid")]
476mod grid_fit_content_points_max_content;
477#[cfg(feature = "grid")]
478mod grid_fit_content_points_min_content;
479#[cfg(feature = "grid")]
480mod grid_fr_auto_no_sized_items;
481#[cfg(feature = "grid")]
482mod grid_fr_auto_single_item;
483#[cfg(feature = "grid")]
484mod grid_fr_fixed_size_no_content;
485#[cfg(feature = "grid")]
486mod grid_fr_fixed_size_single_item;
487#[cfg(feature = "grid")]
488mod grid_gap;
489#[cfg(feature = "grid")]
490mod grid_hidden;
491#[cfg(feature = "grid")]
492mod grid_justify_content_center;
493#[cfg(feature = "grid")]
494mod grid_justify_content_center_with_padding_border;
495#[cfg(feature = "grid")]
496mod grid_justify_content_end;
497#[cfg(feature = "grid")]
498mod grid_justify_content_end_with_padding_border;
499#[cfg(feature = "grid")]
500mod grid_justify_content_space_around;
501#[cfg(feature = "grid")]
502mod grid_justify_content_space_around_with_padding_border;
503#[cfg(feature = "grid")]
504mod grid_justify_content_space_between;
505#[cfg(feature = "grid")]
506mod grid_justify_content_space_between_with_padding_border;
507#[cfg(feature = "grid")]
508mod grid_justify_content_space_evenly;
509#[cfg(feature = "grid")]
510mod grid_justify_content_space_evenly_with_padding_border;
511#[cfg(feature = "grid")]
512mod grid_justify_content_start;
513#[cfg(feature = "grid")]
514mod grid_justify_content_start_with_padding_border;
515#[cfg(feature = "grid")]
516mod grid_justify_items_sized_center;
517#[cfg(feature = "grid")]
518mod grid_justify_items_sized_end;
519#[cfg(feature = "grid")]
520mod grid_justify_items_sized_start;
521#[cfg(feature = "grid")]
522mod grid_justify_items_sized_stretch;
523#[cfg(feature = "grid")]
524mod grid_justify_self_sized_all;
525#[cfg(feature = "grid")]
526mod grid_margins_auto_margins;
527#[cfg(feature = "grid")]
528mod grid_margins_auto_margins_override_stretch;
529#[cfg(feature = "grid")]
530mod grid_margins_fixed_center;
531#[cfg(feature = "grid")]
532mod grid_margins_fixed_end;
533#[cfg(feature = "grid")]
534mod grid_margins_fixed_start;
535#[cfg(feature = "grid")]
536mod grid_margins_fixed_stretch;
537#[cfg(feature = "grid")]
538mod grid_margins_percent_center;
539#[cfg(feature = "grid")]
540mod grid_margins_percent_end;
541#[cfg(feature = "grid")]
542mod grid_margins_percent_start;
543#[cfg(feature = "grid")]
544mod grid_margins_percent_stretch;
545#[cfg(feature = "grid")]
546mod grid_max_content_maximum_single_item;
547#[cfg(feature = "grid")]
548mod grid_max_content_single_item;
549#[cfg(feature = "grid")]
550mod grid_max_content_single_item_margin_auto;
551#[cfg(feature = "grid")]
552mod grid_max_content_single_item_margin_fixed;
553#[cfg(feature = "grid")]
554mod grid_max_content_single_item_margin_percent;
555#[cfg(feature = "grid")]
556mod grid_max_content_single_item_span_2;
557#[cfg(feature = "grid")]
558mod grid_max_content_single_item_span_2_gap_fixed;
559#[cfg(feature = "grid")]
560mod grid_max_content_single_item_span_2_gap_percent_definite;
561#[cfg(feature = "grid")]
562mod grid_max_content_single_item_span_2_gap_percent_indefinite;
563#[cfg(feature = "grid")]
564mod grid_min_content_flex_column;
565#[cfg(feature = "grid")]
566mod grid_min_content_flex_row;
567#[cfg(feature = "grid")]
568mod grid_min_content_flex_single_item;
569#[cfg(feature = "grid")]
570mod grid_min_content_flex_single_item_margin_auto;
571#[cfg(feature = "grid")]
572mod grid_min_content_flex_single_item_margin_fixed;
573#[cfg(feature = "grid")]
574mod grid_min_content_flex_single_item_margin_percent;
575#[cfg(feature = "grid")]
576mod grid_min_content_maximum_single_item;
577#[cfg(feature = "grid")]
578mod grid_min_content_single_item;
579#[cfg(feature = "grid")]
580mod grid_min_max_column_auto;
581#[cfg(feature = "grid")]
582mod grid_min_max_column_fixed_width_above_range;
583#[cfg(feature = "grid")]
584mod grid_min_max_column_fixed_width_below_range;
585#[cfg(feature = "grid")]
586mod grid_min_max_column_fixed_width_within_range;
587#[cfg(feature = "grid")]
588mod grid_out_of_order_items;
589#[cfg(feature = "grid")]
590mod grid_percent_items_nested_moderate;
591#[cfg(feature = "grid")]
592mod grid_percent_items_nested_with_padding_margin;
593#[cfg(feature = "grid")]
594mod grid_percent_items_width_and_margin;
595#[cfg(feature = "grid")]
596mod grid_percent_items_width_and_padding;
597#[cfg(feature = "grid")]
598mod grid_percent_tracks_definite_overflow;
599#[cfg(feature = "grid")]
600mod grid_percent_tracks_definite_underflow;
601#[cfg(feature = "grid")]
602mod grid_percent_tracks_indefinite_only;
603#[cfg(feature = "grid")]
604mod grid_percent_tracks_indefinite_with_content_overflow;
605#[cfg(feature = "grid")]
606mod grid_percent_tracks_indefinite_with_content_underflow;
607#[cfg(feature = "grid")]
608mod grid_placement_auto_negative;
609#[cfg(feature = "grid")]
610mod grid_placement_definite_in_secondary_axis_with_fully_definite_negative;
611#[cfg(feature = "grid")]
612mod grid_relative_all_sides;
613#[cfg(feature = "grid")]
614mod grid_relayout_vertical_text;
615#[cfg(feature = "grid")]
616mod grid_repeat_integer;
617#[cfg(feature = "grid")]
618mod grid_repeat_mixed;
619#[cfg(feature = "grid")]
620mod grid_size_child_fixed_tracks;
621mod justify_content_column_center;
622mod justify_content_column_flex_end;
623mod justify_content_column_flex_start;
624mod justify_content_column_max_height_and_margin;
625mod justify_content_column_min_height_and_margin;
626mod justify_content_column_min_height_and_margin_bottom;
627mod justify_content_column_min_height_and_margin_top;
628mod justify_content_column_space_around;
629mod justify_content_column_space_between;
630mod justify_content_column_space_evenly;
631mod justify_content_min_max;
632mod justify_content_min_width_with_padding_child_width_greater_than_parent;
633mod justify_content_min_width_with_padding_child_width_lower_than_parent;
634mod justify_content_overflow_min_max;
635mod justify_content_row_center;
636mod justify_content_row_flex_end;
637mod justify_content_row_flex_start;
638mod justify_content_row_max_width_and_margin;
639mod justify_content_row_min_width_and_margin;
640mod justify_content_row_space_around;
641mod justify_content_row_space_between;
642mod justify_content_row_space_evenly;
643mod margin_and_flex_column;
644mod margin_and_flex_row;
645mod margin_and_stretch_column;
646mod margin_and_stretch_row;
647mod margin_auto_bottom;
648mod margin_auto_bottom_and_top;
649mod margin_auto_bottom_and_top_justify_center;
650mod margin_auto_left;
651mod margin_auto_left_and_right;
652mod margin_auto_left_and_right_column;
653mod margin_auto_left_and_right_column_and_center;
654mod margin_auto_left_and_right_stretch;
655mod margin_auto_left_child_bigger_than_parent;
656mod margin_auto_left_fix_right_child_bigger_than_parent;
657mod margin_auto_left_right_child_bigger_than_parent;
658mod margin_auto_left_stretching_child;
659mod margin_auto_mutiple_children_column;
660mod margin_auto_mutiple_children_row;
661mod margin_auto_right;
662mod margin_auto_top;
663mod margin_auto_top_and_bottom_stretch;
664mod margin_auto_top_stretching_child;
665mod margin_bottom;
666mod margin_fix_left_auto_right_child_bigger_than_parent;
667mod margin_left;
668mod margin_right;
669mod margin_should_not_be_part_of_max_height;
670mod margin_should_not_be_part_of_max_width;
671mod margin_top;
672mod margin_with_sibling_column;
673mod margin_with_sibling_row;
674mod max_height;
675mod max_height_overrides_height;
676mod max_height_overrides_height_on_root;
677mod max_width;
678mod max_width_overrides_width;
679mod max_width_overrides_width_on_root;
680mod measure_child;
681mod measure_child_absolute;
682mod measure_child_constraint;
683mod measure_child_constraint_padding_parent;
684mod measure_child_with_flex_grow;
685mod measure_child_with_flex_shrink;
686mod measure_flex_basis_overrides_measure;
687mod measure_height_overrides_measure;
688mod measure_remeasure_child_after_growing;
689mod measure_remeasure_child_after_shrinking;
690mod measure_remeasure_child_after_stretching;
691mod measure_root;
692mod measure_stretch_overrides_measure;
693mod measure_width_overrides_measure;
694mod min_height;
695mod min_height_larger_than_height;
696mod min_height_overrides_height;
697mod min_height_overrides_height_on_root;
698mod min_height_overrides_max_height;
699mod min_height_with_nested_fixed_height;
700mod min_max_percent_different_width_height;
701mod min_max_percent_no_width_height;
702mod min_width;
703mod min_width_larger_than_width;
704mod min_width_overrides_max_width;
705mod min_width_overrides_width;
706mod min_width_overrides_width_on_root;
707mod nested_overflowing_child;
708mod nested_overflowing_child_in_constraint_parent;
709mod only_shrinkable_item_with_flex_basis_zero;
710mod overflow_cross_axis;
711mod overflow_main_axis;
712mod padding_align_end_child;
713mod padding_center_child;
714mod padding_container_match_child;
715mod padding_flex_child;
716mod padding_no_child;
717mod padding_no_size;
718mod padding_stretch_child;
719mod parent_wrap_child_size_overflowing_parent;
720mod percent_absolute_position;
721mod percent_within_flex_grow;
722mod percentage_absolute_position;
723mod percentage_container_in_wrapping_container;
724mod percentage_different_width_height;
725mod percentage_different_width_height_column;
726mod percentage_flex_basis;
727mod percentage_flex_basis_cross;
728mod percentage_flex_basis_cross_max_height;
729mod percentage_flex_basis_cross_max_width;
730mod percentage_flex_basis_cross_min_height;
731mod percentage_flex_basis_cross_min_width;
732mod percentage_flex_basis_main_max_height;
733mod percentage_flex_basis_main_max_width;
734mod percentage_flex_basis_main_min_width;
735mod percentage_main_max_height;
736mod percentage_margin_should_calculate_based_only_on_width;
737mod percentage_moderate_complexity;
738mod percentage_multiple_nested_with_padding_margin_and_percentage_values;
739mod percentage_padding_should_calculate_based_only_on_width;
740mod percentage_position_bottom_right;
741mod percentage_position_left_top;
742mod percentage_size_based_on_parent_inner_size;
743mod percentage_size_of_flex_basis;
744mod percentage_width_height;
745mod percentage_width_height_undefined_parent_size;
746mod position_root_with_rtl_should_position_withoutdirection;
747mod relative_position_should_not_nudge_siblings;
748mod rounding_flex_basis_flex_grow_row_prime_number_width;
749mod rounding_flex_basis_flex_grow_row_width_of_100;
750mod rounding_flex_basis_flex_shrink_row;
751mod rounding_flex_basis_overrides_main_size;
752mod rounding_fractial_input_1;
753mod rounding_fractial_input_2;
754mod rounding_fractial_input_3;
755mod rounding_fractial_input_4;
756mod rounding_inner_node_controversy_vertical;
757mod rounding_total_fractial;
758mod rounding_total_fractial_nested;
759mod single_flex_child_after_absolute_child;
760mod size_defined_by_child;
761mod size_defined_by_child_with_border;
762mod size_defined_by_child_with_padding;
763mod size_defined_by_grand_child;
764mod undefined_height_with_min_max;
765mod undefined_width_with_min_max;
766mod undefined_width_with_min_max_row;
767mod width_smaller_then_content_with_flex_grow_large_size;
768mod width_smaller_then_content_with_flex_grow_small_size;
769mod width_smaller_then_content_with_flex_grow_unconstraint_size;
770mod width_smaller_then_content_with_flex_grow_very_large_size;
771mod wrap_child;
772mod wrap_column;
773mod wrap_grandchild;
774mod wrap_nodes_with_content_sizing_margin_cross;
775mod wrap_nodes_with_content_sizing_overflowing_margin;
776mod wrap_reverse_column;
777mod wrap_reverse_column_fixed_size;
778mod wrap_reverse_row;
779mod wrap_reverse_row_align_content_center;
780mod wrap_reverse_row_align_content_flex_start;
781mod wrap_reverse_row_align_content_space_around;
782mod wrap_reverse_row_align_content_stretch;
783mod wrap_reverse_row_single_line_different_size;
784mod wrap_row;
785mod wrap_row_align_items_center;
786mod wrap_row_align_items_flex_end;
787mod wrapped_column_max_height;
788mod wrapped_column_max_height_flex;
789mod wrapped_row_within_align_items_center;
790mod wrapped_row_within_align_items_flex_end;
791mod wrapped_row_within_align_items_flex_start;
792fn benchmark(c: &mut Criterion) {
793 c.bench_function("generated benchmarks", |b| {
794 b.iter(|| {
795 absolute_aspect_ratio_aspect_ratio_overrides_height_of_full_inset::compute();
796 absolute_aspect_ratio_fill_height::compute();
797 absolute_aspect_ratio_fill_height_from_inset::compute();
798 absolute_aspect_ratio_fill_max_height::compute();
799 absolute_aspect_ratio_fill_max_width::compute();
800 absolute_aspect_ratio_fill_min_height::compute();
801 absolute_aspect_ratio_fill_min_width::compute();
802 absolute_aspect_ratio_fill_width::compute();
803 absolute_aspect_ratio_fill_width_from_inset::compute();
804 absolute_aspect_ratio_height_overrides_inset::compute();
805 absolute_aspect_ratio_width_overrides_inset::compute();
806 absolute_child_with_cross_margin::compute();
807 absolute_child_with_main_margin::compute();
808 absolute_child_with_max_height::compute();
809 absolute_child_with_max_height_larger_shrinkable_grandchild::compute();
810 absolute_layout_align_items_and_justify_content_center::compute();
811 absolute_layout_align_items_and_justify_content_center_and_bottom_position::compute();
812 absolute_layout_align_items_and_justify_content_center_and_left_position::compute();
813 absolute_layout_align_items_and_justify_content_center_and_right_position::compute();
814 absolute_layout_align_items_and_justify_content_center_and_top_position::compute();
815 absolute_layout_align_items_and_justify_content_flex_end::compute();
816 absolute_layout_align_items_center::compute();
817 absolute_layout_align_items_center_on_child_only::compute();
818 absolute_layout_child_order::compute();
819 absolute_layout_in_wrap_reverse_column_container::compute();
820 absolute_layout_in_wrap_reverse_column_container_flex_end::compute();
821 absolute_layout_in_wrap_reverse_row_container::compute();
822 absolute_layout_in_wrap_reverse_row_container_flex_end::compute();
823 absolute_layout_justify_content_center::compute();
824 absolute_layout_no_size::compute();
825 absolute_layout_percentage_bottom_based_on_parent_height::compute();
826 absolute_layout_percentage_height::compute();
827 absolute_layout_row_width_height_end_bottom::compute();
828 absolute_layout_start_top_end_bottom::compute();
829 absolute_layout_width_height_end_bottom::compute();
830 absolute_layout_width_height_start_top::compute();
831 absolute_layout_width_height_start_top_end_bottom::compute();
832 absolute_layout_within_border::compute();
833 absolute_margin_bottom_left::compute();
834 absolute_minmax_bottom_right_max::compute();
835 absolute_minmax_bottom_right_min_max::compute();
836 absolute_minmax_bottom_right_min_max_preferred::compute();
837 absolute_minmax_top_left_bottom_right_max::compute();
838 absolute_minmax_top_left_bottom_right_min_max::compute();
839 align_baseline::compute();
840 align_baseline_child::compute();
841 align_baseline_child_margin::compute();
842 align_baseline_child_margin_percent::compute();
843 align_baseline_child_multiline::compute();
844 align_baseline_child_multiline_no_override_on_secondline::compute();
845 align_baseline_child_multiline_override::compute();
846 align_baseline_child_padding::compute();
847 align_baseline_child_top::compute();
848 align_baseline_child_top2::compute();
849 align_baseline_column::compute();
850 align_baseline_double_nested_child::compute();
851 align_baseline_multiline::compute();
852 align_baseline_multiline_column::compute();
853 align_baseline_multiline_column2::compute();
854 align_baseline_multiline_row_and_column::compute();
855 align_baseline_nested_child::compute();
856 align_baseline_nested_column::compute();
857 align_center_should_size_based_on_content::compute();
858 align_content_flex_end::compute();
859 align_content_flex_start::compute();
860 align_content_flex_start_with_flex::compute();
861 align_content_flex_start_without_height_on_children::compute();
862 align_content_not_stretch_with_align_items_stretch::compute();
863 align_content_space_around_single_line::compute();
864 align_content_space_around_wrapped::compute();
865 align_content_space_between_single_line::compute();
866 align_content_space_between_wrapped::compute();
867 align_content_space_evenly_single_line::compute();
868 align_content_space_evenly_wrapped::compute();
869 align_content_spacearound::compute();
870 align_content_spacebetween::compute();
871 align_content_stretch::compute();
872 align_content_stretch_column::compute();
873 align_content_stretch_is_not_overriding_align_items::compute();
874 align_content_stretch_row::compute();
875 align_content_stretch_row_with_children::compute();
876 align_content_stretch_row_with_fixed_height::compute();
877 align_content_stretch_row_with_flex::compute();
878 align_content_stretch_row_with_flex_no_shrink::compute();
879 align_content_stretch_row_with_margin::compute();
880 align_content_stretch_row_with_max_height::compute();
881 align_content_stretch_row_with_min_height::compute();
882 align_content_stretch_row_with_padding::compute();
883 align_content_stretch_row_with_single_row::compute();
884 align_flex_start_with_shrinking_children::compute();
885 align_flex_start_with_shrinking_children_with_stretch::compute();
886 align_flex_start_with_stretching_children::compute();
887 align_items_center::compute();
888 align_items_center_child_with_margin_bigger_than_parent::compute();
889 align_items_center_child_without_margin_bigger_than_parent::compute();
890 align_items_center_justify_content_center::compute();
891 align_items_center_min_max_with_padding::compute();
892 align_items_center_with_child_margin::compute();
893 align_items_center_with_child_top::compute();
894 align_items_flex_end::compute();
895 align_items_flex_end_child_with_margin_bigger_than_parent::compute();
896 align_items_flex_end_child_without_margin_bigger_than_parent::compute();
897 align_items_flex_start::compute();
898 align_items_min_max::compute();
899 align_items_stretch::compute();
900 align_items_stretch_min_cross::compute();
901 align_self_baseline::compute();
902 align_self_center::compute();
903 align_self_center_undefined_max_height::compute();
904 align_self_flex_end::compute();
905 align_self_flex_end_override_flex_start::compute();
906 align_self_flex_start::compute();
907 align_stretch_should_size_based_on_parent::compute();
908 android_news_feed::compute();
909 aspect_ratio_flex_column_fill_height::compute();
910 aspect_ratio_flex_column_fill_max_height::compute();
911 aspect_ratio_flex_column_fill_max_width::compute();
912 aspect_ratio_flex_column_fill_min_height::compute();
913 aspect_ratio_flex_column_fill_min_width::compute();
914 aspect_ratio_flex_column_fill_width::compute();
915 aspect_ratio_flex_column_fill_width_flex::compute();
916 aspect_ratio_flex_column_stretch_fill_height::compute();
917 aspect_ratio_flex_column_stretch_fill_max_height::compute();
918 aspect_ratio_flex_column_stretch_fill_max_width::compute();
919 aspect_ratio_flex_column_stretch_fill_width::compute();
920 aspect_ratio_flex_row_fill_height::compute();
921 aspect_ratio_flex_row_fill_max_height::compute();
922 aspect_ratio_flex_row_fill_max_width::compute();
923 aspect_ratio_flex_row_fill_min_height::compute();
924 aspect_ratio_flex_row_fill_min_width::compute();
925 aspect_ratio_flex_row_fill_width::compute();
926 aspect_ratio_flex_row_fill_width_flex::compute();
927 aspect_ratio_flex_row_stretch_fill_height::compute();
928 aspect_ratio_flex_row_stretch_fill_max_height::compute();
929 aspect_ratio_flex_row_stretch_fill_max_width::compute();
930 aspect_ratio_flex_row_stretch_fill_width::compute();
931 border_center_child::compute();
932 border_container_match_child::compute();
933 border_flex_child::compute();
934 border_no_child::compute();
935 border_no_size::compute();
936 border_stretch_child::compute();
937 child_min_max_width_flexing::compute();
938 child_with_padding_align_end::compute();
939 container_with_unsized_child::compute();
940 display_none::compute();
941 display_none_absolute_child::compute();
942 display_none_fixed_size::compute();
943 display_none_with_child::compute();
944 display_none_with_margin::compute();
945 display_none_with_position::compute();
946 display_none_with_position_absolute::compute();
947 flex_basis_and_main_dimen_set_when_flexing::compute();
948 flex_basis_flex_grow_column::compute();
949 flex_basis_flex_grow_row::compute();
950 flex_basis_flex_shrink_column::compute();
951 flex_basis_flex_shrink_row::compute();
952 flex_basis_larger_than_content_column::compute();
953 flex_basis_larger_than_content_row::compute();
954 flex_basis_overrides_main_size::compute();
955 flex_basis_slightly_smaller_then_content_with_flex_grow_large_size::compute();
956 flex_basis_smaller_than_content_column::compute();
957 flex_basis_smaller_than_content_row::compute();
958 flex_basis_smaller_than_main_dimen_column::compute();
959 flex_basis_smaller_than_main_dimen_row::compute();
960 flex_basis_smaller_then_content_with_flex_grow_large_size::compute();
961 flex_basis_smaller_then_content_with_flex_grow_small_size::compute();
962 flex_basis_smaller_then_content_with_flex_grow_unconstraint_size::compute();
963 flex_basis_smaller_then_content_with_flex_grow_very_large_size::compute();
964 flex_basis_unconstraint_column::compute();
965 flex_basis_unconstraint_row::compute();
966 flex_basis_zero_undefined_main_size::compute();
967 flex_column_relative_all_sides::compute();
968 flex_direction_column::compute();
969 flex_direction_column_no_height::compute();
970 flex_direction_column_reverse::compute();
971 flex_direction_column_reverse_no_height::compute();
972 flex_direction_row::compute();
973 flex_direction_row_no_width::compute();
974 flex_direction_row_reverse::compute();
975 flex_grow_child::compute();
976 flex_grow_flex_basis_percent_min_max::compute();
977 flex_grow_height_maximized::compute();
978 flex_grow_in_at_most_container::compute();
979 flex_grow_less_than_factor_one::compute();
980 flex_grow_root_minimized::compute();
981 flex_grow_shrink_at_most::compute();
982 flex_grow_to_min::compute();
983 flex_grow_within_constrained_max_column::compute();
984 flex_grow_within_constrained_max_row::compute();
985 flex_grow_within_constrained_max_width::compute();
986 flex_grow_within_constrained_min_column::compute();
987 flex_grow_within_constrained_min_max_column::compute();
988 flex_grow_within_constrained_min_row::compute();
989 flex_grow_within_max_width::compute();
990 flex_root_ignored::compute();
991 flex_row_relative_all_sides::compute();
992 flex_shrink_by_outer_margin_with_max_size::compute();
993 flex_shrink_flex_grow_child_flex_shrink_other_child::compute();
994 flex_shrink_flex_grow_row::compute();
995 flex_shrink_to_zero::compute();
996 flex_wrap_align_stretch_fits_one_row::compute();
997 flex_wrap_children_with_min_main_overriding_flex_basis::compute();
998 flex_wrap_wrap_to_child_height::compute();
999 gap_column_gap_child_margins::compute();
1000 gap_column_gap_determines_parent_width::compute();
1001 gap_column_gap_flexible::compute();
1002 gap_column_gap_flexible_undefined_parent::compute();
1003 gap_column_gap_inflexible::compute();
1004 gap_column_gap_inflexible_undefined_parent::compute();
1005 gap_column_gap_justify_center::compute();
1006 gap_column_gap_justify_flex_end::compute();
1007 gap_column_gap_justify_flex_start::compute();
1008 gap_column_gap_justify_space_around::compute();
1009 gap_column_gap_justify_space_between::compute();
1010 gap_column_gap_justify_space_evenly::compute();
1011 gap_column_gap_mixed_flexible::compute();
1012 gap_column_gap_percentage_cyclic_partially_shrinkable::compute();
1013 gap_column_gap_percentage_cyclic_shrinkable::compute();
1014 gap_column_gap_percentage_cyclic_unshrinkable::compute();
1015 gap_column_gap_percentage_flexible::compute();
1016 gap_column_gap_percentage_flexible_with_padding::compute();
1017 gap_column_gap_percentage_inflexible::compute();
1018 gap_column_gap_row_gap_wrapping::compute();
1019 gap_column_gap_wrap_align_center::compute();
1020 gap_column_gap_wrap_align_flex_end::compute();
1021 gap_column_gap_wrap_align_flex_start::compute();
1022 gap_column_gap_wrap_align_space_around::compute();
1023 gap_column_gap_wrap_align_space_between::compute();
1024 gap_column_gap_wrap_align_stretch::compute();
1025 gap_column_row_gap_wrapping::compute();
1026 gap_percentage_row_gap_wrapping::compute();
1027 gap_row_gap_align_items_end::compute();
1028 gap_row_gap_align_items_stretch::compute();
1029 gap_row_gap_column_child_margins::compute();
1030 gap_row_gap_determines_parent_height::compute();
1031 gap_row_gap_row_wrap_child_margins::compute();
1032 #[cfg(feature = "grid")]
1033 grid_absolute_align_self_sized_all::compute();
1034 #[cfg(feature = "grid")]
1035 grid_absolute_column_end::compute();
1036 #[cfg(feature = "grid")]
1037 grid_absolute_column_start::compute();
1038 #[cfg(feature = "grid")]
1039 grid_absolute_container_bottom_left::compute();
1040 #[cfg(feature = "grid")]
1041 grid_absolute_container_bottom_left_margin::compute();
1042 #[cfg(feature = "grid")]
1043 grid_absolute_container_left_overrides_right::compute();
1044 #[cfg(feature = "grid")]
1045 grid_absolute_container_left_right::compute();
1046 #[cfg(feature = "grid")]
1047 grid_absolute_container_left_right_margin::compute();
1048 #[cfg(feature = "grid")]
1049 grid_absolute_container_negative_position::compute();
1050 #[cfg(feature = "grid")]
1051 grid_absolute_container_negative_position_margin::compute();
1052 #[cfg(feature = "grid")]
1053 grid_absolute_container_top_bottom::compute();
1054 #[cfg(feature = "grid")]
1055 grid_absolute_container_top_bottom_margin::compute();
1056 #[cfg(feature = "grid")]
1057 grid_absolute_container_top_right::compute();
1058 #[cfg(feature = "grid")]
1059 grid_absolute_container_top_right_margin::compute();
1060 #[cfg(feature = "grid")]
1061 grid_absolute_justify_self_sized_all::compute();
1062 #[cfg(feature = "grid")]
1063 grid_absolute_layout_within_border::compute();
1064 #[cfg(feature = "grid")]
1065 grid_absolute_layout_within_border_static::compute();
1066 #[cfg(feature = "grid")]
1067 grid_absolute_row_end::compute();
1068 #[cfg(feature = "grid")]
1069 grid_absolute_row_start::compute();
1070 #[cfg(feature = "grid")]
1071 grid_absolute_top_overrides_bottom::compute();
1072 #[cfg(feature = "grid")]
1073 grid_absolute_with_padding::compute();
1074 #[cfg(feature = "grid")]
1075 grid_absolute_with_padding_and_margin::compute();
1076 #[cfg(feature = "grid")]
1077 grid_align_content_center::compute();
1078 #[cfg(feature = "grid")]
1079 grid_align_content_end::compute();
1080 #[cfg(feature = "grid")]
1081 grid_align_content_end_with_padding_border::compute();
1082 #[cfg(feature = "grid")]
1083 grid_align_content_space_around::compute();
1084 #[cfg(feature = "grid")]
1085 grid_align_content_space_around_with_padding_border::compute();
1086 #[cfg(feature = "grid")]
1087 grid_align_content_space_between::compute();
1088 #[cfg(feature = "grid")]
1089 grid_align_content_space_between_with_padding_border::compute();
1090 #[cfg(feature = "grid")]
1091 grid_align_content_space_evenly::compute();
1092 #[cfg(feature = "grid")]
1093 grid_align_content_space_evenly_with_padding_border::compute();
1094 #[cfg(feature = "grid")]
1095 grid_align_content_start::compute();
1096 #[cfg(feature = "grid")]
1097 grid_align_content_start_with_padding_border::compute();
1098 #[cfg(feature = "grid")]
1099 grid_align_items_baseline::compute();
1100 #[cfg(feature = "grid")]
1101 grid_align_items_baseline_child::compute();
1102 #[cfg(feature = "grid")]
1103 grid_align_items_baseline_child_margin::compute();
1104 #[cfg(feature = "grid")]
1105 grid_align_items_baseline_child_margin_percent::compute();
1106 #[cfg(feature = "grid")]
1107 grid_align_items_baseline_child_multiline::compute();
1108 #[cfg(feature = "grid")]
1109 grid_align_items_baseline_child_multiline_no_override_on_secondline::compute();
1110 #[cfg(feature = "grid")]
1111 grid_align_items_baseline_child_multiline_override::compute();
1112 #[cfg(feature = "grid")]
1113 grid_align_items_baseline_child_padding::compute();
1114 #[cfg(feature = "grid")]
1115 grid_align_items_baseline_child_top::compute();
1116 #[cfg(feature = "grid")]
1117 grid_align_items_baseline_child_top2::compute();
1118 #[cfg(feature = "grid")]
1119 grid_align_items_baseline_complex::compute();
1120 #[cfg(feature = "grid")]
1121 grid_align_items_baseline_double_nested_child::compute();
1122 #[cfg(feature = "grid")]
1123 grid_align_items_baseline_multiline::compute();
1124 #[cfg(feature = "grid")]
1125 grid_align_items_baseline_multiline_column::compute();
1126 #[cfg(feature = "grid")]
1127 grid_align_items_baseline_multiline_row_and_column::compute();
1128 #[cfg(feature = "grid")]
1129 grid_align_items_baseline_nested_column::compute();
1130 #[cfg(feature = "grid")]
1131 grid_align_items_sized_center::compute();
1132 #[cfg(feature = "grid")]
1133 grid_align_items_sized_end::compute();
1134 #[cfg(feature = "grid")]
1135 grid_align_items_sized_start::compute();
1136 #[cfg(feature = "grid")]
1137 grid_align_items_sized_stretch::compute();
1138 #[cfg(feature = "grid")]
1139 grid_align_self_sized_all::compute();
1140 #[cfg(feature = "grid")]
1141 grid_aspect_ratio_absolute_aspect_ratio_overrides_height_of_full_inset::compute();
1142 #[cfg(feature = "grid")]
1143 grid_aspect_ratio_absolute_fill_height_from_inset::compute();
1144 #[cfg(feature = "grid")]
1145 grid_aspect_ratio_absolute_fill_width_from_inset::compute();
1146 #[cfg(feature = "grid")]
1147 grid_aspect_ratio_absolute_height_overrides_inset::compute();
1148 #[cfg(feature = "grid")]
1149 grid_aspect_ratio_absolute_width_overrides_inset::compute();
1150 #[cfg(feature = "grid")]
1151 grid_aspect_ratio_child_fill_content_height::compute();
1152 #[cfg(feature = "grid")]
1153 grid_aspect_ratio_child_fill_content_width::compute();
1154 #[cfg(feature = "grid")]
1155 grid_aspect_ratio_fill_child_height::compute();
1156 #[cfg(feature = "grid")]
1157 grid_aspect_ratio_fill_child_max_height::compute();
1158 #[cfg(feature = "grid")]
1159 grid_aspect_ratio_fill_child_max_width::compute();
1160 #[cfg(feature = "grid")]
1161 grid_aspect_ratio_fill_child_min_height::compute();
1162 #[cfg(feature = "grid")]
1163 grid_aspect_ratio_fill_child_min_width::compute();
1164 #[cfg(feature = "grid")]
1165 grid_aspect_ratio_fill_child_width::compute();
1166 #[cfg(feature = "grid")]
1167 grid_aspect_ratio_overriden_by_explicit_sizes::compute();
1168 #[cfg(feature = "grid")]
1169 grid_aspect_ratio_overriden_by_explicit_sizes_flex::compute();
1170 #[cfg(feature = "grid")]
1171 grid_auto_columns_fixed_width::compute();
1172 #[cfg(feature = "grid")]
1173 grid_auto_fill_fixed_size::compute();
1174 #[cfg(feature = "grid")]
1175 grid_auto_fill_with_empty_auto_track::compute();
1176 #[cfg(feature = "grid")]
1177 grid_auto_fit_with_empty_auto_track::compute();
1178 #[cfg(feature = "grid")]
1179 grid_auto_single_item::compute();
1180 #[cfg(feature = "grid")]
1181 grid_auto_single_item_fixed_width::compute();
1182 #[cfg(feature = "grid")]
1183 grid_auto_single_item_fixed_width_with_definite_width::compute();
1184 #[cfg(feature = "grid")]
1185 grid_basic::compute();
1186 #[cfg(feature = "grid")]
1187 grid_basic_implicit_tracks::compute();
1188 #[cfg(feature = "grid")]
1189 grid_basic_with_overflow::compute();
1190 #[cfg(feature = "grid")]
1191 grid_basic_with_padding::compute();
1192 #[cfg(feature = "grid")]
1193 grid_fit_content_percent_definite_argument::compute();
1194 #[cfg(feature = "grid")]
1195 grid_fit_content_percent_definite_max_content::compute();
1196 #[cfg(feature = "grid")]
1197 grid_fit_content_percent_definite_min_content::compute();
1198 #[cfg(feature = "grid")]
1199 grid_fit_content_percent_indefinite_argument::compute();
1200 #[cfg(feature = "grid")]
1201 grid_fit_content_percent_indefinite_max_content::compute();
1202 #[cfg(feature = "grid")]
1203 grid_fit_content_percent_indefinite_min_content::compute();
1204 #[cfg(feature = "grid")]
1205 grid_fit_content_points_argument::compute();
1206 #[cfg(feature = "grid")]
1207 grid_fit_content_points_max_content::compute();
1208 #[cfg(feature = "grid")]
1209 grid_fit_content_points_min_content::compute();
1210 #[cfg(feature = "grid")]
1211 grid_fr_auto_no_sized_items::compute();
1212 #[cfg(feature = "grid")]
1213 grid_fr_auto_single_item::compute();
1214 #[cfg(feature = "grid")]
1215 grid_fr_fixed_size_no_content::compute();
1216 #[cfg(feature = "grid")]
1217 grid_fr_fixed_size_single_item::compute();
1218 #[cfg(feature = "grid")]
1219 grid_gap::compute();
1220 #[cfg(feature = "grid")]
1221 grid_hidden::compute();
1222 #[cfg(feature = "grid")]
1223 grid_justify_content_center::compute();
1224 #[cfg(feature = "grid")]
1225 grid_justify_content_center_with_padding_border::compute();
1226 #[cfg(feature = "grid")]
1227 grid_justify_content_end::compute();
1228 #[cfg(feature = "grid")]
1229 grid_justify_content_end_with_padding_border::compute();
1230 #[cfg(feature = "grid")]
1231 grid_justify_content_space_around::compute();
1232 #[cfg(feature = "grid")]
1233 grid_justify_content_space_around_with_padding_border::compute();
1234 #[cfg(feature = "grid")]
1235 grid_justify_content_space_between::compute();
1236 #[cfg(feature = "grid")]
1237 grid_justify_content_space_between_with_padding_border::compute();
1238 #[cfg(feature = "grid")]
1239 grid_justify_content_space_evenly::compute();
1240 #[cfg(feature = "grid")]
1241 grid_justify_content_space_evenly_with_padding_border::compute();
1242 #[cfg(feature = "grid")]
1243 grid_justify_content_start::compute();
1244 #[cfg(feature = "grid")]
1245 grid_justify_content_start_with_padding_border::compute();
1246 #[cfg(feature = "grid")]
1247 grid_justify_items_sized_center::compute();
1248 #[cfg(feature = "grid")]
1249 grid_justify_items_sized_end::compute();
1250 #[cfg(feature = "grid")]
1251 grid_justify_items_sized_start::compute();
1252 #[cfg(feature = "grid")]
1253 grid_justify_items_sized_stretch::compute();
1254 #[cfg(feature = "grid")]
1255 grid_justify_self_sized_all::compute();
1256 #[cfg(feature = "grid")]
1257 grid_margins_auto_margins::compute();
1258 #[cfg(feature = "grid")]
1259 grid_margins_auto_margins_override_stretch::compute();
1260 #[cfg(feature = "grid")]
1261 grid_margins_fixed_center::compute();
1262 #[cfg(feature = "grid")]
1263 grid_margins_fixed_end::compute();
1264 #[cfg(feature = "grid")]
1265 grid_margins_fixed_start::compute();
1266 #[cfg(feature = "grid")]
1267 grid_margins_fixed_stretch::compute();
1268 #[cfg(feature = "grid")]
1269 grid_margins_percent_center::compute();
1270 #[cfg(feature = "grid")]
1271 grid_margins_percent_end::compute();
1272 #[cfg(feature = "grid")]
1273 grid_margins_percent_start::compute();
1274 #[cfg(feature = "grid")]
1275 grid_margins_percent_stretch::compute();
1276 #[cfg(feature = "grid")]
1277 grid_max_content_maximum_single_item::compute();
1278 #[cfg(feature = "grid")]
1279 grid_max_content_single_item::compute();
1280 #[cfg(feature = "grid")]
1281 grid_max_content_single_item_margin_auto::compute();
1282 #[cfg(feature = "grid")]
1283 grid_max_content_single_item_margin_fixed::compute();
1284 #[cfg(feature = "grid")]
1285 grid_max_content_single_item_margin_percent::compute();
1286 #[cfg(feature = "grid")]
1287 grid_max_content_single_item_span_2::compute();
1288 #[cfg(feature = "grid")]
1289 grid_max_content_single_item_span_2_gap_fixed::compute();
1290 #[cfg(feature = "grid")]
1291 grid_max_content_single_item_span_2_gap_percent_definite::compute();
1292 #[cfg(feature = "grid")]
1293 grid_max_content_single_item_span_2_gap_percent_indefinite::compute();
1294 #[cfg(feature = "grid")]
1295 grid_min_content_flex_column::compute();
1296 #[cfg(feature = "grid")]
1297 grid_min_content_flex_row::compute();
1298 #[cfg(feature = "grid")]
1299 grid_min_content_flex_single_item::compute();
1300 #[cfg(feature = "grid")]
1301 grid_min_content_flex_single_item_margin_auto::compute();
1302 #[cfg(feature = "grid")]
1303 grid_min_content_flex_single_item_margin_fixed::compute();
1304 #[cfg(feature = "grid")]
1305 grid_min_content_flex_single_item_margin_percent::compute();
1306 #[cfg(feature = "grid")]
1307 grid_min_content_maximum_single_item::compute();
1308 #[cfg(feature = "grid")]
1309 grid_min_content_single_item::compute();
1310 #[cfg(feature = "grid")]
1311 grid_min_max_column_auto::compute();
1312 #[cfg(feature = "grid")]
1313 grid_min_max_column_fixed_width_above_range::compute();
1314 #[cfg(feature = "grid")]
1315 grid_min_max_column_fixed_width_below_range::compute();
1316 #[cfg(feature = "grid")]
1317 grid_min_max_column_fixed_width_within_range::compute();
1318 #[cfg(feature = "grid")]
1319 grid_out_of_order_items::compute();
1320 #[cfg(feature = "grid")]
1321 grid_percent_items_nested_moderate::compute();
1322 #[cfg(feature = "grid")]
1323 grid_percent_items_nested_with_padding_margin::compute();
1324 #[cfg(feature = "grid")]
1325 grid_percent_items_width_and_margin::compute();
1326 #[cfg(feature = "grid")]
1327 grid_percent_items_width_and_padding::compute();
1328 #[cfg(feature = "grid")]
1329 grid_percent_tracks_definite_overflow::compute();
1330 #[cfg(feature = "grid")]
1331 grid_percent_tracks_definite_underflow::compute();
1332 #[cfg(feature = "grid")]
1333 grid_percent_tracks_indefinite_only::compute();
1334 #[cfg(feature = "grid")]
1335 grid_percent_tracks_indefinite_with_content_overflow::compute();
1336 #[cfg(feature = "grid")]
1337 grid_percent_tracks_indefinite_with_content_underflow::compute();
1338 #[cfg(feature = "grid")]
1339 grid_placement_auto_negative::compute();
1340 #[cfg(feature = "grid")]
1341 grid_placement_definite_in_secondary_axis_with_fully_definite_negative::compute();
1342 #[cfg(feature = "grid")]
1343 grid_relative_all_sides::compute();
1344 #[cfg(feature = "grid")]
1345 grid_relayout_vertical_text::compute();
1346 #[cfg(feature = "grid")]
1347 grid_repeat_integer::compute();
1348 #[cfg(feature = "grid")]
1349 grid_repeat_mixed::compute();
1350 #[cfg(feature = "grid")]
1351 grid_size_child_fixed_tracks::compute();
1352 justify_content_column_center::compute();
1353 justify_content_column_flex_end::compute();
1354 justify_content_column_flex_start::compute();
1355 justify_content_column_max_height_and_margin::compute();
1356 justify_content_column_min_height_and_margin::compute();
1357 justify_content_column_min_height_and_margin_bottom::compute();
1358 justify_content_column_min_height_and_margin_top::compute();
1359 justify_content_column_space_around::compute();
1360 justify_content_column_space_between::compute();
1361 justify_content_column_space_evenly::compute();
1362 justify_content_min_max::compute();
1363 justify_content_min_width_with_padding_child_width_greater_than_parent::compute();
1364 justify_content_min_width_with_padding_child_width_lower_than_parent::compute();
1365 justify_content_overflow_min_max::compute();
1366 justify_content_row_center::compute();
1367 justify_content_row_flex_end::compute();
1368 justify_content_row_flex_start::compute();
1369 justify_content_row_max_width_and_margin::compute();
1370 justify_content_row_min_width_and_margin::compute();
1371 justify_content_row_space_around::compute();
1372 justify_content_row_space_between::compute();
1373 justify_content_row_space_evenly::compute();
1374 margin_and_flex_column::compute();
1375 margin_and_flex_row::compute();
1376 margin_and_stretch_column::compute();
1377 margin_and_stretch_row::compute();
1378 margin_auto_bottom::compute();
1379 margin_auto_bottom_and_top::compute();
1380 margin_auto_bottom_and_top_justify_center::compute();
1381 margin_auto_left::compute();
1382 margin_auto_left_and_right::compute();
1383 margin_auto_left_and_right_column::compute();
1384 margin_auto_left_and_right_column_and_center::compute();
1385 margin_auto_left_and_right_stretch::compute();
1386 margin_auto_left_child_bigger_than_parent::compute();
1387 margin_auto_left_fix_right_child_bigger_than_parent::compute();
1388 margin_auto_left_right_child_bigger_than_parent::compute();
1389 margin_auto_left_stretching_child::compute();
1390 margin_auto_mutiple_children_column::compute();
1391 margin_auto_mutiple_children_row::compute();
1392 margin_auto_right::compute();
1393 margin_auto_top::compute();
1394 margin_auto_top_and_bottom_stretch::compute();
1395 margin_auto_top_stretching_child::compute();
1396 margin_bottom::compute();
1397 margin_fix_left_auto_right_child_bigger_than_parent::compute();
1398 margin_left::compute();
1399 margin_right::compute();
1400 margin_should_not_be_part_of_max_height::compute();
1401 margin_should_not_be_part_of_max_width::compute();
1402 margin_top::compute();
1403 margin_with_sibling_column::compute();
1404 margin_with_sibling_row::compute();
1405 max_height::compute();
1406 max_height_overrides_height::compute();
1407 max_height_overrides_height_on_root::compute();
1408 max_width::compute();
1409 max_width_overrides_width::compute();
1410 max_width_overrides_width_on_root::compute();
1411 measure_child::compute();
1412 measure_child_absolute::compute();
1413 measure_child_constraint::compute();
1414 measure_child_constraint_padding_parent::compute();
1415 measure_child_with_flex_grow::compute();
1416 measure_child_with_flex_shrink::compute();
1417 measure_flex_basis_overrides_measure::compute();
1418 measure_height_overrides_measure::compute();
1419 measure_remeasure_child_after_growing::compute();
1420 measure_remeasure_child_after_shrinking::compute();
1421 measure_remeasure_child_after_stretching::compute();
1422 measure_root::compute();
1423 measure_stretch_overrides_measure::compute();
1424 measure_width_overrides_measure::compute();
1425 min_height::compute();
1426 min_height_larger_than_height::compute();
1427 min_height_overrides_height::compute();
1428 min_height_overrides_height_on_root::compute();
1429 min_height_overrides_max_height::compute();
1430 min_height_with_nested_fixed_height::compute();
1431 min_max_percent_different_width_height::compute();
1432 min_max_percent_no_width_height::compute();
1433 min_width::compute();
1434 min_width_larger_than_width::compute();
1435 min_width_overrides_max_width::compute();
1436 min_width_overrides_width::compute();
1437 min_width_overrides_width_on_root::compute();
1438 nested_overflowing_child::compute();
1439 nested_overflowing_child_in_constraint_parent::compute();
1440 only_shrinkable_item_with_flex_basis_zero::compute();
1441 overflow_cross_axis::compute();
1442 overflow_main_axis::compute();
1443 padding_align_end_child::compute();
1444 padding_center_child::compute();
1445 padding_container_match_child::compute();
1446 padding_flex_child::compute();
1447 padding_no_child::compute();
1448 padding_no_size::compute();
1449 padding_stretch_child::compute();
1450 parent_wrap_child_size_overflowing_parent::compute();
1451 percent_absolute_position::compute();
1452 percent_within_flex_grow::compute();
1453 percentage_absolute_position::compute();
1454 percentage_container_in_wrapping_container::compute();
1455 percentage_different_width_height::compute();
1456 percentage_different_width_height_column::compute();
1457 percentage_flex_basis::compute();
1458 percentage_flex_basis_cross::compute();
1459 percentage_flex_basis_cross_max_height::compute();
1460 percentage_flex_basis_cross_max_width::compute();
1461 percentage_flex_basis_cross_min_height::compute();
1462 percentage_flex_basis_cross_min_width::compute();
1463 percentage_flex_basis_main_max_height::compute();
1464 percentage_flex_basis_main_max_width::compute();
1465 percentage_flex_basis_main_min_width::compute();
1466 percentage_main_max_height::compute();
1467 percentage_margin_should_calculate_based_only_on_width::compute();
1468 percentage_moderate_complexity::compute();
1469 percentage_multiple_nested_with_padding_margin_and_percentage_values::compute();
1470 percentage_padding_should_calculate_based_only_on_width::compute();
1471 percentage_position_bottom_right::compute();
1472 percentage_position_left_top::compute();
1473 percentage_size_based_on_parent_inner_size::compute();
1474 percentage_size_of_flex_basis::compute();
1475 percentage_width_height::compute();
1476 percentage_width_height_undefined_parent_size::compute();
1477 position_root_with_rtl_should_position_withoutdirection::compute();
1478 relative_position_should_not_nudge_siblings::compute();
1479 rounding_flex_basis_flex_grow_row_prime_number_width::compute();
1480 rounding_flex_basis_flex_grow_row_width_of_100::compute();
1481 rounding_flex_basis_flex_shrink_row::compute();
1482 rounding_flex_basis_overrides_main_size::compute();
1483 rounding_fractial_input_1::compute();
1484 rounding_fractial_input_2::compute();
1485 rounding_fractial_input_3::compute();
1486 rounding_fractial_input_4::compute();
1487 rounding_inner_node_controversy_vertical::compute();
1488 rounding_total_fractial::compute();
1489 rounding_total_fractial_nested::compute();
1490 single_flex_child_after_absolute_child::compute();
1491 size_defined_by_child::compute();
1492 size_defined_by_child_with_border::compute();
1493 size_defined_by_child_with_padding::compute();
1494 size_defined_by_grand_child::compute();
1495 undefined_height_with_min_max::compute();
1496 undefined_width_with_min_max::compute();
1497 undefined_width_with_min_max_row::compute();
1498 width_smaller_then_content_with_flex_grow_large_size::compute();
1499 width_smaller_then_content_with_flex_grow_small_size::compute();
1500 width_smaller_then_content_with_flex_grow_unconstraint_size::compute();
1501 width_smaller_then_content_with_flex_grow_very_large_size::compute();
1502 wrap_child::compute();
1503 wrap_column::compute();
1504 wrap_grandchild::compute();
1505 wrap_nodes_with_content_sizing_margin_cross::compute();
1506 wrap_nodes_with_content_sizing_overflowing_margin::compute();
1507 wrap_reverse_column::compute();
1508 wrap_reverse_column_fixed_size::compute();
1509 wrap_reverse_row::compute();
1510 wrap_reverse_row_align_content_center::compute();
1511 wrap_reverse_row_align_content_flex_start::compute();
1512 wrap_reverse_row_align_content_space_around::compute();
1513 wrap_reverse_row_align_content_stretch::compute();
1514 wrap_reverse_row_single_line_different_size::compute();
1515 wrap_row::compute();
1516 wrap_row_align_items_center::compute();
1517 wrap_row_align_items_flex_end::compute();
1518 wrapped_column_max_height::compute();
1519 wrapped_column_max_height_flex::compute();
1520 wrapped_row_within_align_items_center::compute();
1521 wrapped_row_within_align_items_flex_end::compute();
1522 wrapped_row_within_align_items_flex_start::compute();
1523 })
1524 });
1525}
1526criterion_group!(benches, benchmark);
1527criterion_main!(benches);