tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

HTML 231Rust 9TOML 3CSS 1345 Definitions

⎇ 0596475afda99229de96976e73b2d637c78fdb8b benches/generated/mod.rs Rust · 1447 lines · 64.7 KB History Who touched what raw

Fix grid track sizing for `fit-content(percentage)` and for items spanning percentage gaps (#335) 0596475af · Nico Burns ·

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