gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 684HTML 640Markdown 12TOML 62286 Definiciones

⎇ 01babab32d8138f3c3fa05095fb6c65fca0d3967 benches/generated/mod.rs Rust · 1043 líneas · 45.7 KB Historia Quién tocó qué crudo

Make CSS Grid feature a default feature (#297) 01babab32 · Nico Burns ·

1use criterion::{criterion_group, criterion_main, Criterion};
2#[allow(dead_code)]
3fn measure_standard_text(
4    known_dimensions: taffy::geometry::Size<Option<f32>>,
5    available_space: taffy::geometry::Size<taffy::style::AvailableSpace>,
6    text_content: &str,
7) -> taffy::geometry::Size<f32> {
8    use taffy::prelude::*;
9    const ZWS: char = '\u{200B}';
10    const H_WIDTH: f32 = 10.0;
11    const H_HEIGHT: f32 = 10.0;
12    if let Size { width: Some(width), height: Some(height) } = known_dimensions {
13        return Size { width, height };
14    }
15    let lines: Vec<&str> = text_content.split(ZWS).collect();
16    if lines.is_empty() {
17        return Size::ZERO;
18    }
19    let min_line_length: usize = lines.iter().map(|line| line.len()).max().unwrap_or(0);
20    let max_line_length: usize = lines.iter().map(|line| line.len()).sum();
21    let width = known_dimensions.width.unwrap_or_else(|| match available_space.width {
22        AvailableSpace::MinContent => min_line_length as f32 * H_WIDTH,
23        AvailableSpace::MaxContent => max_line_length as f32 * H_WIDTH,
24        AvailableSpace::Definite(width) => {
25            width.min(max_line_length as f32 * H_WIDTH).max(min_line_length as f32 * H_WIDTH)
26        }
27    });
28    let height = known_dimensions.height.unwrap_or_else(|| {
29        let width_line_length = (width / H_WIDTH).floor() as usize;
30        let mut line_count = 1;
31        let mut current_line_length = 0;
32        for line in &lines {
33            if current_line_length + line.len() > width_line_length {
34                if current_line_length > 0 {
35                    line_count += 1
36                };
37                current_line_length = line.len();
38            } else {
39                current_line_length += line.len();
40            };
41        }
42        (line_count as f32) * H_HEIGHT
43    });
44    Size { width, height }
45}
46mod absolute_layout_align_items_and_justify_content_center;
47mod absolute_layout_align_items_and_justify_content_center_and_bottom_position;
48mod absolute_layout_align_items_and_justify_content_center_and_left_position;
49mod absolute_layout_align_items_and_justify_content_center_and_right_position;
50mod absolute_layout_align_items_and_justify_content_center_and_top_position;
51mod absolute_layout_align_items_and_justify_content_flex_end;
52mod absolute_layout_align_items_center;
53mod absolute_layout_align_items_center_on_child_only;
54mod absolute_layout_child_order;
55mod absolute_layout_in_wrap_reverse_column_container;
56mod absolute_layout_in_wrap_reverse_column_container_flex_end;
57mod absolute_layout_in_wrap_reverse_row_container;
58mod absolute_layout_in_wrap_reverse_row_container_flex_end;
59mod absolute_layout_justify_content_center;
60mod absolute_layout_no_size;
61mod absolute_layout_percentage_bottom_based_on_parent_height;
62mod absolute_layout_start_top_end_bottom;
63mod absolute_layout_width_height_end_bottom;
64mod absolute_layout_width_height_start_top;
65mod absolute_layout_width_height_start_top_end_bottom;
66mod absolute_layout_within_border;
67mod align_baseline;
68mod align_baseline_child_multiline;
69mod align_baseline_nested_child;
70mod align_center_should_size_based_on_content;
71mod align_content_space_around_single_line;
72mod align_content_space_around_wrapped;
73mod align_content_space_between_single_line;
74mod align_content_space_between_wrapped;
75mod align_content_space_evenly_single_line;
76mod align_content_space_evenly_wrapped;
77mod align_flex_start_with_shrinking_children;
78mod align_flex_start_with_shrinking_children_with_stretch;
79mod align_flex_start_with_stretching_children;
80mod align_items_center;
81mod align_items_center_child_with_margin_bigger_than_parent;
82mod align_items_center_child_without_margin_bigger_than_parent;
83mod align_items_center_with_child_margin;
84mod align_items_center_with_child_top;
85mod align_items_flex_end;
86mod align_items_flex_end_child_with_margin_bigger_than_parent;
87mod align_items_flex_end_child_without_margin_bigger_than_parent;
88mod align_items_flex_start;
89mod align_items_min_max;
90mod align_items_stretch;
91mod align_self_baseline;
92mod align_self_center;
93mod align_self_flex_end;
94mod align_self_flex_end_override_flex_start;
95mod align_self_flex_start;
96mod align_strech_should_size_based_on_parent;
97mod border_center_child;
98mod border_flex_child;
99mod border_no_child;
100mod border_stretch_child;
101mod child_min_max_width_flexing;
102mod container_with_unsized_child;
103mod display_none;
104mod display_none_fixed_size;
105mod display_none_with_child;
106mod display_none_with_margin;
107mod display_none_with_position;
108mod flex_basis_and_main_dimen_set_when_flexing;
109mod flex_basis_flex_grow_column;
110mod flex_basis_flex_grow_row;
111mod flex_basis_flex_shrink_column;
112mod flex_basis_flex_shrink_row;
113mod flex_basis_larger_than_content_column;
114mod flex_basis_larger_than_content_row;
115mod flex_basis_overrides_main_size;
116mod flex_basis_slightly_smaller_then_content_with_flex_grow_large_size;
117mod flex_basis_smaller_than_content_column;
118mod flex_basis_smaller_than_content_row;
119mod flex_basis_smaller_than_main_dimen_column;
120mod flex_basis_smaller_than_main_dimen_row;
121mod flex_basis_smaller_then_content_with_flex_grow_large_size;
122mod flex_basis_smaller_then_content_with_flex_grow_small_size;
123mod flex_basis_smaller_then_content_with_flex_grow_unconstraint_size;
124mod flex_basis_smaller_then_content_with_flex_grow_very_large_size;
125mod flex_basis_unconstraint_column;
126mod flex_basis_unconstraint_row;
127mod flex_direction_column;
128mod flex_direction_column_no_height;
129mod flex_direction_column_reverse;
130mod flex_direction_row;
131mod flex_direction_row_no_width;
132mod flex_direction_row_reverse;
133mod flex_grow_child;
134mod flex_grow_flex_basis_percent_min_max;
135mod flex_grow_height_maximized;
136mod flex_grow_in_at_most_container;
137mod flex_grow_less_than_factor_one;
138mod flex_grow_root_minimized;
139mod flex_grow_shrink_at_most;
140mod flex_grow_to_min;
141mod flex_grow_within_constrained_max_column;
142mod flex_grow_within_constrained_max_row;
143mod flex_grow_within_constrained_max_width;
144mod flex_grow_within_constrained_min_column;
145mod flex_grow_within_constrained_min_max_column;
146mod flex_grow_within_constrained_min_row;
147mod flex_grow_within_max_width;
148mod flex_root_ignored;
149mod flex_shrink_by_outer_margin_with_max_size;
150mod flex_shrink_flex_grow_child_flex_shrink_other_child;
151mod flex_shrink_flex_grow_row;
152mod flex_shrink_to_zero;
153mod flex_wrap_align_stretch_fits_one_row;
154mod flex_wrap_children_with_min_main_overriding_flex_basis;
155mod flex_wrap_wrap_to_child_height;
156mod gap_column_gap_child_margins;
157mod gap_column_gap_determines_parent_width;
158mod gap_column_gap_flexible;
159mod gap_column_gap_flexible_undefined_parent;
160mod gap_column_gap_inflexible;
161mod gap_column_gap_inflexible_undefined_parent;
162mod gap_column_gap_justify_center;
163mod gap_column_gap_justify_flex_end;
164mod gap_column_gap_justify_flex_start;
165mod gap_column_gap_justify_space_around;
166mod gap_column_gap_justify_space_between;
167mod gap_column_gap_justify_space_evenly;
168mod gap_column_gap_mixed_flexible;
169mod gap_column_gap_percentage_cyclic_partially_shrinkable;
170mod gap_column_gap_percentage_cyclic_shrinkable;
171mod gap_column_gap_percentage_cyclic_unshrinkable;
172mod gap_column_gap_percentage_flexible;
173mod gap_column_gap_percentage_inflexible;
174mod gap_column_gap_wrap_align_center;
175mod gap_column_gap_wrap_align_flex_end;
176mod gap_column_gap_wrap_align_flex_start;
177mod gap_column_gap_wrap_align_space_around;
178mod gap_column_gap_wrap_align_space_between;
179mod gap_column_gap_wrap_align_stretch;
180mod gap_column_row_gap_wrapping;
181mod gap_percentage_row_gap_wrapping;
182mod gap_row_gap_align_items_end;
183mod gap_row_gap_align_items_stretch;
184mod gap_row_gap_column_child_margins;
185mod gap_row_gap_determines_parent_height;
186mod gap_row_gap_row_wrap_child_margins;
187#[cfg(feature = "grid")]
188mod grid_absolute_align_self_sized_all;
189#[cfg(feature = "grid")]
190mod grid_absolute_column_end;
191#[cfg(feature = "grid")]
192mod grid_absolute_column_start;
193#[cfg(feature = "grid")]
194mod grid_absolute_container_bottom_left;
195#[cfg(feature = "grid")]
196mod grid_absolute_container_bottom_left_margin;
197#[cfg(feature = "grid")]
198mod grid_absolute_container_left_overrides_right;
199#[cfg(feature = "grid")]
200mod grid_absolute_container_left_right;
201#[cfg(feature = "grid")]
202mod grid_absolute_container_left_right_margin;
203#[cfg(feature = "grid")]
204mod grid_absolute_container_negative_position;
205#[cfg(feature = "grid")]
206mod grid_absolute_container_negative_position_margin;
207#[cfg(feature = "grid")]
208mod grid_absolute_container_top_bottom;
209#[cfg(feature = "grid")]
210mod grid_absolute_container_top_bottom_margin;
211#[cfg(feature = "grid")]
212mod grid_absolute_container_top_right;
213#[cfg(feature = "grid")]
214mod grid_absolute_container_top_right_margin;
215#[cfg(feature = "grid")]
216mod grid_absolute_justify_self_sized_all;
217#[cfg(feature = "grid")]
218mod grid_absolute_row_end;
219#[cfg(feature = "grid")]
220mod grid_absolute_row_start;
221#[cfg(feature = "grid")]
222mod grid_absolute_top_overrides_bottom;
223#[cfg(feature = "grid")]
224mod grid_absolute_with_padding;
225#[cfg(feature = "grid")]
226mod grid_absolute_with_padding_and_margin;
227#[cfg(feature = "grid")]
228mod grid_align_content_center;
229#[cfg(feature = "grid")]
230mod grid_align_content_end;
231#[cfg(feature = "grid")]
232mod grid_align_content_end_with_padding_border;
233#[cfg(feature = "grid")]
234mod grid_align_content_space_around;
235#[cfg(feature = "grid")]
236mod grid_align_content_space_around_with_padding_border;
237#[cfg(feature = "grid")]
238mod grid_align_content_space_between;
239#[cfg(feature = "grid")]
240mod grid_align_content_space_between_with_padding_border;
241#[cfg(feature = "grid")]
242mod grid_align_content_space_evenly;
243#[cfg(feature = "grid")]
244mod grid_align_content_space_evenly_with_padding_border;
245#[cfg(feature = "grid")]
246mod grid_align_content_start;
247#[cfg(feature = "grid")]
248mod grid_align_content_start_with_padding_border;
249#[cfg(feature = "grid")]
250mod grid_align_items_sized_center;
251#[cfg(feature = "grid")]
252mod grid_align_items_sized_end;
253#[cfg(feature = "grid")]
254mod grid_align_items_sized_start;
255#[cfg(feature = "grid")]
256mod grid_align_items_sized_stretch;
257#[cfg(feature = "grid")]
258mod grid_align_self_sized_all;
259#[cfg(feature = "grid")]
260mod grid_auto_columns_fixed_width;
261#[cfg(feature = "grid")]
262mod grid_auto_fill_fixed_size;
263#[cfg(feature = "grid")]
264mod grid_auto_fill_with_empty_auto_track;
265#[cfg(feature = "grid")]
266mod grid_auto_fit_with_empty_auto_track;
267#[cfg(feature = "grid")]
268mod grid_auto_single_item;
269#[cfg(feature = "grid")]
270mod grid_auto_single_item_fixed_width;
271#[cfg(feature = "grid")]
272mod grid_auto_single_item_fixed_width_with_definite_width;
273#[cfg(feature = "grid")]
274mod grid_basic;
275#[cfg(feature = "grid")]
276mod grid_basic_implicit_tracks;
277#[cfg(feature = "grid")]
278mod grid_basic_with_overflow;
279#[cfg(feature = "grid")]
280mod grid_basic_with_padding;
281#[cfg(feature = "grid")]
282mod grid_fit_content_points_argument;
283#[cfg(feature = "grid")]
284mod grid_fit_content_points_max_content;
285#[cfg(feature = "grid")]
286mod grid_fit_content_points_min_content;
287#[cfg(feature = "grid")]
288mod grid_fr_auto_no_sized_items;
289#[cfg(feature = "grid")]
290mod grid_fr_auto_single_item;
291#[cfg(feature = "grid")]
292mod grid_fr_fixed_size_no_content;
293#[cfg(feature = "grid")]
294mod grid_fr_fixed_size_single_item;
295#[cfg(feature = "grid")]
296mod grid_gap;
297#[cfg(feature = "grid")]
298mod grid_hidden;
299#[cfg(feature = "grid")]
300mod grid_justify_content_center;
301#[cfg(feature = "grid")]
302mod grid_justify_content_center_with_padding_border;
303#[cfg(feature = "grid")]
304mod grid_justify_content_end;
305#[cfg(feature = "grid")]
306mod grid_justify_content_end_with_padding_border;
307#[cfg(feature = "grid")]
308mod grid_justify_content_space_around;
309#[cfg(feature = "grid")]
310mod grid_justify_content_space_around_with_padding_border;
311#[cfg(feature = "grid")]
312mod grid_justify_content_space_between;
313#[cfg(feature = "grid")]
314mod grid_justify_content_space_between_with_padding_border;
315#[cfg(feature = "grid")]
316mod grid_justify_content_space_evenly;
317#[cfg(feature = "grid")]
318mod grid_justify_content_space_evenly_with_padding_border;
319#[cfg(feature = "grid")]
320mod grid_justify_content_start;
321#[cfg(feature = "grid")]
322mod grid_justify_content_start_with_padding_border;
323#[cfg(feature = "grid")]
324mod grid_justify_items_sized_center;
325#[cfg(feature = "grid")]
326mod grid_justify_items_sized_end;
327#[cfg(feature = "grid")]
328mod grid_justify_items_sized_start;
329#[cfg(feature = "grid")]
330mod grid_justify_items_sized_stretch;
331#[cfg(feature = "grid")]
332mod grid_justify_self_sized_all;
333#[cfg(feature = "grid")]
334mod grid_margins_auto_margins;
335#[cfg(feature = "grid")]
336mod grid_margins_auto_margins_override_stretch;
337#[cfg(feature = "grid")]
338mod grid_margins_fixed_center;
339#[cfg(feature = "grid")]
340mod grid_margins_fixed_end;
341#[cfg(feature = "grid")]
342mod grid_margins_fixed_start;
343#[cfg(feature = "grid")]
344mod grid_margins_fixed_stretch;
345#[cfg(feature = "grid")]
346mod grid_margins_percent_center;
347#[cfg(feature = "grid")]
348mod grid_margins_percent_end;
349#[cfg(feature = "grid")]
350mod grid_margins_percent_start;
351#[cfg(feature = "grid")]
352mod grid_margins_percent_stretch;
353#[cfg(feature = "grid")]
354mod grid_max_content_maximum_single_item;
355#[cfg(feature = "grid")]
356mod grid_max_content_single_item;
357#[cfg(feature = "grid")]
358mod grid_max_content_single_item_margin_auto;
359#[cfg(feature = "grid")]
360mod grid_max_content_single_item_margin_fixed;
361#[cfg(feature = "grid")]
362mod grid_max_content_single_item_margin_percent;
363#[cfg(feature = "grid")]
364mod grid_min_content_flex_column;
365#[cfg(feature = "grid")]
366mod grid_min_content_flex_row;
367#[cfg(feature = "grid")]
368mod grid_min_content_flex_single_item;
369#[cfg(feature = "grid")]
370mod grid_min_content_flex_single_item_margin_auto;
371#[cfg(feature = "grid")]
372mod grid_min_content_flex_single_item_margin_fixed;
373#[cfg(feature = "grid")]
374mod grid_min_content_flex_single_item_margin_percent;
375#[cfg(feature = "grid")]
376mod grid_min_content_maximum_single_item;
377#[cfg(feature = "grid")]
378mod grid_min_content_single_item;
379#[cfg(feature = "grid")]
380mod grid_min_max_column_auto;
381#[cfg(feature = "grid")]
382mod grid_min_max_column_fixed_width_above_range;
383#[cfg(feature = "grid")]
384mod grid_min_max_column_fixed_width_below_range;
385#[cfg(feature = "grid")]
386mod grid_min_max_column_fixed_width_within_range;
387#[cfg(feature = "grid")]
388mod grid_out_of_order_items;
389#[cfg(feature = "grid")]
390mod grid_size_child_fixed_tracks;
391mod justify_content_column_center;
392mod justify_content_column_flex_end;
393mod justify_content_column_flex_start;
394mod justify_content_column_min_height_and_margin_bottom;
395mod justify_content_column_min_height_and_margin_top;
396mod justify_content_column_space_around;
397mod justify_content_column_space_between;
398mod justify_content_column_space_evenly;
399mod justify_content_min_max;
400mod justify_content_min_width_with_padding_child_width_greater_than_parent;
401mod justify_content_min_width_with_padding_child_width_lower_than_parent;
402mod justify_content_overflow_min_max;
403mod justify_content_row_center;
404mod justify_content_row_flex_end;
405mod justify_content_row_flex_start;
406mod justify_content_row_max_width_and_margin;
407mod justify_content_row_min_width_and_margin;
408mod justify_content_row_space_around;
409mod justify_content_row_space_between;
410mod justify_content_row_space_evenly;
411mod margin_and_flex_column;
412mod margin_and_flex_row;
413mod margin_and_stretch_column;
414mod margin_and_stretch_row;
415mod margin_auto_bottom;
416mod margin_auto_bottom_and_top;
417mod margin_auto_bottom_and_top_justify_center;
418mod margin_auto_left;
419mod margin_auto_left_and_right;
420mod margin_auto_left_and_right_column;
421mod margin_auto_left_and_right_column_and_center;
422mod margin_auto_left_and_right_strech;
423mod margin_auto_left_child_bigger_than_parent;
424mod margin_auto_left_fix_right_child_bigger_than_parent;
425mod margin_auto_left_right_child_bigger_than_parent;
426mod margin_auto_left_stretching_child;
427mod margin_auto_mutiple_children_column;
428mod margin_auto_mutiple_children_row;
429mod margin_auto_right;
430mod margin_auto_top;
431mod margin_auto_top_and_bottom_strech;
432mod margin_auto_top_stretching_child;
433mod margin_bottom;
434mod margin_fix_left_auto_right_child_bigger_than_parent;
435mod margin_left;
436mod margin_right;
437mod margin_should_not_be_part_of_max_height;
438mod margin_should_not_be_part_of_max_width;
439mod margin_top;
440mod margin_with_sibling_column;
441mod margin_with_sibling_row;
442mod max_height;
443mod max_height_overrides_height;
444mod max_height_overrides_height_on_root;
445mod max_width;
446mod max_width_overrides_width;
447mod max_width_overrides_width_on_root;
448mod measure_child;
449mod measure_child_absolute;
450mod measure_child_constraint;
451mod measure_child_constraint_padding_parent;
452mod measure_child_with_flex_grow;
453mod measure_child_with_flex_shrink;
454mod measure_flex_basis_overrides_measure;
455mod measure_height_overrides_measure;
456mod measure_remeasure_child_after_growing;
457mod measure_remeasure_child_after_shrinking;
458mod measure_remeasure_child_after_stretching;
459mod measure_root;
460mod measure_stretch_overrides_measure;
461mod measure_width_overrides_measure;
462mod min_height;
463mod min_height_overrides_height;
464mod min_height_overrides_height_on_root;
465mod min_height_overrides_max_height;
466mod min_max_percent_no_width_height;
467mod min_width;
468mod min_width_overrides_max_width;
469mod min_width_overrides_width;
470mod min_width_overrides_width_on_root;
471mod nested_overflowing_child;
472mod nested_overflowing_child_in_constraint_parent;
473mod overflow_cross_axis;
474mod overflow_main_axis;
475mod padding_align_end_child;
476mod padding_center_child;
477mod padding_flex_child;
478mod padding_no_child;
479mod padding_stretch_child;
480mod parent_wrap_child_size_overflowing_parent;
481mod percent_absolute_position;
482mod percent_within_flex_grow;
483mod percentage_absolute_position;
484mod percentage_container_in_wrapping_container;
485mod percentage_flex_basis;
486mod percentage_flex_basis_cross;
487mod percentage_flex_basis_cross_max_height;
488mod percentage_flex_basis_cross_max_width;
489mod percentage_flex_basis_cross_min_height;
490mod percentage_flex_basis_cross_min_width;
491mod percentage_flex_basis_main_max_height;
492mod percentage_flex_basis_main_max_width;
493mod percentage_flex_basis_main_min_width;
494mod percentage_margin_should_calculate_based_only_on_width;
495mod percentage_multiple_nested_with_padding_margin_and_percentage_values;
496mod percentage_padding_should_calculate_based_only_on_width;
497mod percentage_position_bottom_right;
498mod percentage_position_left_top;
499mod percentage_size_based_on_parent_inner_size;
500mod percentage_size_of_flex_basis;
501mod percentage_width_height;
502mod percentage_width_height_undefined_parent_size;
503mod relative_position_should_not_nudge_siblings;
504mod rounding_flex_basis_flex_grow_row_prime_number_width;
505mod rounding_flex_basis_flex_grow_row_width_of_100;
506mod rounding_flex_basis_flex_shrink_row;
507mod rounding_flex_basis_overrides_main_size;
508mod rounding_fractial_input_1;
509mod rounding_fractial_input_2;
510mod rounding_fractial_input_3;
511mod rounding_fractial_input_4;
512mod rounding_total_fractial;
513mod rounding_total_fractial_nested;
514mod size_defined_by_child;
515mod size_defined_by_child_with_border;
516mod size_defined_by_child_with_padding;
517mod size_defined_by_grand_child;
518mod width_smaller_then_content_with_flex_grow_large_size;
519mod width_smaller_then_content_with_flex_grow_small_size;
520mod width_smaller_then_content_with_flex_grow_unconstraint_size;
521mod width_smaller_then_content_with_flex_grow_very_large_size;
522mod wrap_column;
523mod wrap_nodes_with_content_sizing_margin_cross;
524mod wrap_nodes_with_content_sizing_overflowing_margin;
525mod wrap_reverse_column;
526mod wrap_reverse_column_fixed_size;
527mod wrap_reverse_row;
528mod wrap_reverse_row_align_content_center;
529mod wrap_reverse_row_align_content_flex_start;
530mod wrap_reverse_row_align_content_space_around;
531mod wrap_reverse_row_align_content_stretch;
532mod wrap_reverse_row_single_line_different_size;
533mod wrap_row;
534mod wrap_row_align_items_center;
535mod wrap_row_align_items_flex_end;
536mod wrapped_column_max_height;
537mod wrapped_column_max_height_flex;
538mod wrapped_row_within_align_items_center;
539mod wrapped_row_within_align_items_flex_end;
540mod wrapped_row_within_align_items_flex_start;
541fn benchmark(c: &mut Criterion) {
542    c.bench_function("generated benchmarks", |b| {
543        b.iter(|| {
544            absolute_layout_align_items_and_justify_content_center::compute();
545            absolute_layout_align_items_and_justify_content_center_and_bottom_position::compute();
546            absolute_layout_align_items_and_justify_content_center_and_left_position::compute();
547            absolute_layout_align_items_and_justify_content_center_and_right_position::compute();
548            absolute_layout_align_items_and_justify_content_center_and_top_position::compute();
549            absolute_layout_align_items_and_justify_content_flex_end::compute();
550            absolute_layout_align_items_center::compute();
551            absolute_layout_align_items_center_on_child_only::compute();
552            absolute_layout_child_order::compute();
553            absolute_layout_in_wrap_reverse_column_container::compute();
554            absolute_layout_in_wrap_reverse_column_container_flex_end::compute();
555            absolute_layout_in_wrap_reverse_row_container::compute();
556            absolute_layout_in_wrap_reverse_row_container_flex_end::compute();
557            absolute_layout_justify_content_center::compute();
558            absolute_layout_no_size::compute();
559            absolute_layout_percentage_bottom_based_on_parent_height::compute();
560            absolute_layout_start_top_end_bottom::compute();
561            absolute_layout_width_height_end_bottom::compute();
562            absolute_layout_width_height_start_top::compute();
563            absolute_layout_width_height_start_top_end_bottom::compute();
564            absolute_layout_within_border::compute();
565            align_baseline::compute();
566            align_baseline_child_multiline::compute();
567            align_baseline_nested_child::compute();
568            align_center_should_size_based_on_content::compute();
569            align_content_space_around_single_line::compute();
570            align_content_space_around_wrapped::compute();
571            align_content_space_between_single_line::compute();
572            align_content_space_between_wrapped::compute();
573            align_content_space_evenly_single_line::compute();
574            align_content_space_evenly_wrapped::compute();
575            align_flex_start_with_shrinking_children::compute();
576            align_flex_start_with_shrinking_children_with_stretch::compute();
577            align_flex_start_with_stretching_children::compute();
578            align_items_center::compute();
579            align_items_center_child_with_margin_bigger_than_parent::compute();
580            align_items_center_child_without_margin_bigger_than_parent::compute();
581            align_items_center_with_child_margin::compute();
582            align_items_center_with_child_top::compute();
583            align_items_flex_end::compute();
584            align_items_flex_end_child_with_margin_bigger_than_parent::compute();
585            align_items_flex_end_child_without_margin_bigger_than_parent::compute();
586            align_items_flex_start::compute();
587            align_items_min_max::compute();
588            align_items_stretch::compute();
589            align_self_baseline::compute();
590            align_self_center::compute();
591            align_self_flex_end::compute();
592            align_self_flex_end_override_flex_start::compute();
593            align_self_flex_start::compute();
594            align_strech_should_size_based_on_parent::compute();
595            border_center_child::compute();
596            border_flex_child::compute();
597            border_no_child::compute();
598            border_stretch_child::compute();
599            child_min_max_width_flexing::compute();
600            container_with_unsized_child::compute();
601            display_none::compute();
602            display_none_fixed_size::compute();
603            display_none_with_child::compute();
604            display_none_with_margin::compute();
605            display_none_with_position::compute();
606            flex_basis_and_main_dimen_set_when_flexing::compute();
607            flex_basis_flex_grow_column::compute();
608            flex_basis_flex_grow_row::compute();
609            flex_basis_flex_shrink_column::compute();
610            flex_basis_flex_shrink_row::compute();
611            flex_basis_larger_than_content_column::compute();
612            flex_basis_larger_than_content_row::compute();
613            flex_basis_overrides_main_size::compute();
614            flex_basis_slightly_smaller_then_content_with_flex_grow_large_size::compute();
615            flex_basis_smaller_than_content_column::compute();
616            flex_basis_smaller_than_content_row::compute();
617            flex_basis_smaller_than_main_dimen_column::compute();
618            flex_basis_smaller_than_main_dimen_row::compute();
619            flex_basis_smaller_then_content_with_flex_grow_large_size::compute();
620            flex_basis_smaller_then_content_with_flex_grow_small_size::compute();
621            flex_basis_smaller_then_content_with_flex_grow_unconstraint_size::compute();
622            flex_basis_smaller_then_content_with_flex_grow_very_large_size::compute();
623            flex_basis_unconstraint_column::compute();
624            flex_basis_unconstraint_row::compute();
625            flex_direction_column::compute();
626            flex_direction_column_no_height::compute();
627            flex_direction_column_reverse::compute();
628            flex_direction_row::compute();
629            flex_direction_row_no_width::compute();
630            flex_direction_row_reverse::compute();
631            flex_grow_child::compute();
632            flex_grow_flex_basis_percent_min_max::compute();
633            flex_grow_height_maximized::compute();
634            flex_grow_in_at_most_container::compute();
635            flex_grow_less_than_factor_one::compute();
636            flex_grow_root_minimized::compute();
637            flex_grow_shrink_at_most::compute();
638            flex_grow_to_min::compute();
639            flex_grow_within_constrained_max_column::compute();
640            flex_grow_within_constrained_max_row::compute();
641            flex_grow_within_constrained_max_width::compute();
642            flex_grow_within_constrained_min_column::compute();
643            flex_grow_within_constrained_min_max_column::compute();
644            flex_grow_within_constrained_min_row::compute();
645            flex_grow_within_max_width::compute();
646            flex_root_ignored::compute();
647            flex_shrink_by_outer_margin_with_max_size::compute();
648            flex_shrink_flex_grow_child_flex_shrink_other_child::compute();
649            flex_shrink_flex_grow_row::compute();
650            flex_shrink_to_zero::compute();
651            flex_wrap_align_stretch_fits_one_row::compute();
652            flex_wrap_children_with_min_main_overriding_flex_basis::compute();
653            flex_wrap_wrap_to_child_height::compute();
654            gap_column_gap_child_margins::compute();
655            gap_column_gap_determines_parent_width::compute();
656            gap_column_gap_flexible::compute();
657            gap_column_gap_flexible_undefined_parent::compute();
658            gap_column_gap_inflexible::compute();
659            gap_column_gap_inflexible_undefined_parent::compute();
660            gap_column_gap_justify_center::compute();
661            gap_column_gap_justify_flex_end::compute();
662            gap_column_gap_justify_flex_start::compute();
663            gap_column_gap_justify_space_around::compute();
664            gap_column_gap_justify_space_between::compute();
665            gap_column_gap_justify_space_evenly::compute();
666            gap_column_gap_mixed_flexible::compute();
667            gap_column_gap_percentage_cyclic_partially_shrinkable::compute();
668            gap_column_gap_percentage_cyclic_shrinkable::compute();
669            gap_column_gap_percentage_cyclic_unshrinkable::compute();
670            gap_column_gap_percentage_flexible::compute();
671            gap_column_gap_percentage_inflexible::compute();
672            gap_column_gap_wrap_align_center::compute();
673            gap_column_gap_wrap_align_flex_end::compute();
674            gap_column_gap_wrap_align_flex_start::compute();
675            gap_column_gap_wrap_align_space_around::compute();
676            gap_column_gap_wrap_align_space_between::compute();
677            gap_column_gap_wrap_align_stretch::compute();
678            gap_column_row_gap_wrapping::compute();
679            gap_percentage_row_gap_wrapping::compute();
680            gap_row_gap_align_items_end::compute();
681            gap_row_gap_align_items_stretch::compute();
682            gap_row_gap_column_child_margins::compute();
683            gap_row_gap_determines_parent_height::compute();
684            gap_row_gap_row_wrap_child_margins::compute();
685            #[cfg(feature = "grid")]
686            grid_absolute_align_self_sized_all::compute();
687            #[cfg(feature = "grid")]
688            grid_absolute_column_end::compute();
689            #[cfg(feature = "grid")]
690            grid_absolute_column_start::compute();
691            #[cfg(feature = "grid")]
692            grid_absolute_container_bottom_left::compute();
693            #[cfg(feature = "grid")]
694            grid_absolute_container_bottom_left_margin::compute();
695            #[cfg(feature = "grid")]
696            grid_absolute_container_left_overrides_right::compute();
697            #[cfg(feature = "grid")]
698            grid_absolute_container_left_right::compute();
699            #[cfg(feature = "grid")]
700            grid_absolute_container_left_right_margin::compute();
701            #[cfg(feature = "grid")]
702            grid_absolute_container_negative_position::compute();
703            #[cfg(feature = "grid")]
704            grid_absolute_container_negative_position_margin::compute();
705            #[cfg(feature = "grid")]
706            grid_absolute_container_top_bottom::compute();
707            #[cfg(feature = "grid")]
708            grid_absolute_container_top_bottom_margin::compute();
709            #[cfg(feature = "grid")]
710            grid_absolute_container_top_right::compute();
711            #[cfg(feature = "grid")]
712            grid_absolute_container_top_right_margin::compute();
713            #[cfg(feature = "grid")]
714            grid_absolute_justify_self_sized_all::compute();
715            #[cfg(feature = "grid")]
716            grid_absolute_row_end::compute();
717            #[cfg(feature = "grid")]
718            grid_absolute_row_start::compute();
719            #[cfg(feature = "grid")]
720            grid_absolute_top_overrides_bottom::compute();
721            #[cfg(feature = "grid")]
722            grid_absolute_with_padding::compute();
723            #[cfg(feature = "grid")]
724            grid_absolute_with_padding_and_margin::compute();
725            #[cfg(feature = "grid")]
726            grid_align_content_center::compute();
727            #[cfg(feature = "grid")]
728            grid_align_content_end::compute();
729            #[cfg(feature = "grid")]
730            grid_align_content_end_with_padding_border::compute();
731            #[cfg(feature = "grid")]
732            grid_align_content_space_around::compute();
733            #[cfg(feature = "grid")]
734            grid_align_content_space_around_with_padding_border::compute();
735            #[cfg(feature = "grid")]
736            grid_align_content_space_between::compute();
737            #[cfg(feature = "grid")]
738            grid_align_content_space_between_with_padding_border::compute();
739            #[cfg(feature = "grid")]
740            grid_align_content_space_evenly::compute();
741            #[cfg(feature = "grid")]
742            grid_align_content_space_evenly_with_padding_border::compute();
743            #[cfg(feature = "grid")]
744            grid_align_content_start::compute();
745            #[cfg(feature = "grid")]
746            grid_align_content_start_with_padding_border::compute();
747            #[cfg(feature = "grid")]
748            grid_align_items_sized_center::compute();
749            #[cfg(feature = "grid")]
750            grid_align_items_sized_end::compute();
751            #[cfg(feature = "grid")]
752            grid_align_items_sized_start::compute();
753            #[cfg(feature = "grid")]
754            grid_align_items_sized_stretch::compute();
755            #[cfg(feature = "grid")]
756            grid_align_self_sized_all::compute();
757            #[cfg(feature = "grid")]
758            grid_auto_columns_fixed_width::compute();
759            #[cfg(feature = "grid")]
760            grid_auto_fill_fixed_size::compute();
761            #[cfg(feature = "grid")]
762            grid_auto_fill_with_empty_auto_track::compute();
763            #[cfg(feature = "grid")]
764            grid_auto_fit_with_empty_auto_track::compute();
765            #[cfg(feature = "grid")]
766            grid_auto_single_item::compute();
767            #[cfg(feature = "grid")]
768            grid_auto_single_item_fixed_width::compute();
769            #[cfg(feature = "grid")]
770            grid_auto_single_item_fixed_width_with_definite_width::compute();
771            #[cfg(feature = "grid")]
772            grid_basic::compute();
773            #[cfg(feature = "grid")]
774            grid_basic_implicit_tracks::compute();
775            #[cfg(feature = "grid")]
776            grid_basic_with_overflow::compute();
777            #[cfg(feature = "grid")]
778            grid_basic_with_padding::compute();
779            #[cfg(feature = "grid")]
780            grid_fit_content_points_argument::compute();
781            #[cfg(feature = "grid")]
782            grid_fit_content_points_max_content::compute();
783            #[cfg(feature = "grid")]
784            grid_fit_content_points_min_content::compute();
785            #[cfg(feature = "grid")]
786            grid_fr_auto_no_sized_items::compute();
787            #[cfg(feature = "grid")]
788            grid_fr_auto_single_item::compute();
789            #[cfg(feature = "grid")]
790            grid_fr_fixed_size_no_content::compute();
791            #[cfg(feature = "grid")]
792            grid_fr_fixed_size_single_item::compute();
793            #[cfg(feature = "grid")]
794            grid_gap::compute();
795            #[cfg(feature = "grid")]
796            grid_hidden::compute();
797            #[cfg(feature = "grid")]
798            grid_justify_content_center::compute();
799            #[cfg(feature = "grid")]
800            grid_justify_content_center_with_padding_border::compute();
801            #[cfg(feature = "grid")]
802            grid_justify_content_end::compute();
803            #[cfg(feature = "grid")]
804            grid_justify_content_end_with_padding_border::compute();
805            #[cfg(feature = "grid")]
806            grid_justify_content_space_around::compute();
807            #[cfg(feature = "grid")]
808            grid_justify_content_space_around_with_padding_border::compute();
809            #[cfg(feature = "grid")]
810            grid_justify_content_space_between::compute();
811            #[cfg(feature = "grid")]
812            grid_justify_content_space_between_with_padding_border::compute();
813            #[cfg(feature = "grid")]
814            grid_justify_content_space_evenly::compute();
815            #[cfg(feature = "grid")]
816            grid_justify_content_space_evenly_with_padding_border::compute();
817            #[cfg(feature = "grid")]
818            grid_justify_content_start::compute();
819            #[cfg(feature = "grid")]
820            grid_justify_content_start_with_padding_border::compute();
821            #[cfg(feature = "grid")]
822            grid_justify_items_sized_center::compute();
823            #[cfg(feature = "grid")]
824            grid_justify_items_sized_end::compute();
825            #[cfg(feature = "grid")]
826            grid_justify_items_sized_start::compute();
827            #[cfg(feature = "grid")]
828            grid_justify_items_sized_stretch::compute();
829            #[cfg(feature = "grid")]
830            grid_justify_self_sized_all::compute();
831            #[cfg(feature = "grid")]
832            grid_margins_auto_margins::compute();
833            #[cfg(feature = "grid")]
834            grid_margins_auto_margins_override_stretch::compute();
835            #[cfg(feature = "grid")]
836            grid_margins_fixed_center::compute();
837            #[cfg(feature = "grid")]
838            grid_margins_fixed_end::compute();
839            #[cfg(feature = "grid")]
840            grid_margins_fixed_start::compute();
841            #[cfg(feature = "grid")]
842            grid_margins_fixed_stretch::compute();
843            #[cfg(feature = "grid")]
844            grid_margins_percent_center::compute();
845            #[cfg(feature = "grid")]
846            grid_margins_percent_end::compute();
847            #[cfg(feature = "grid")]
848            grid_margins_percent_start::compute();
849            #[cfg(feature = "grid")]
850            grid_margins_percent_stretch::compute();
851            #[cfg(feature = "grid")]
852            grid_max_content_maximum_single_item::compute();
853            #[cfg(feature = "grid")]
854            grid_max_content_single_item::compute();
855            #[cfg(feature = "grid")]
856            grid_max_content_single_item_margin_auto::compute();
857            #[cfg(feature = "grid")]
858            grid_max_content_single_item_margin_fixed::compute();
859            #[cfg(feature = "grid")]
860            grid_max_content_single_item_margin_percent::compute();
861            #[cfg(feature = "grid")]
862            grid_min_content_flex_column::compute();
863            #[cfg(feature = "grid")]
864            grid_min_content_flex_row::compute();
865            #[cfg(feature = "grid")]
866            grid_min_content_flex_single_item::compute();
867            #[cfg(feature = "grid")]
868            grid_min_content_flex_single_item_margin_auto::compute();
869            #[cfg(feature = "grid")]
870            grid_min_content_flex_single_item_margin_fixed::compute();
871            #[cfg(feature = "grid")]
872            grid_min_content_flex_single_item_margin_percent::compute();
873            #[cfg(feature = "grid")]
874            grid_min_content_maximum_single_item::compute();
875            #[cfg(feature = "grid")]
876            grid_min_content_single_item::compute();
877            #[cfg(feature = "grid")]
878            grid_min_max_column_auto::compute();
879            #[cfg(feature = "grid")]
880            grid_min_max_column_fixed_width_above_range::compute();
881            #[cfg(feature = "grid")]
882            grid_min_max_column_fixed_width_below_range::compute();
883            #[cfg(feature = "grid")]
884            grid_min_max_column_fixed_width_within_range::compute();
885            #[cfg(feature = "grid")]
886            grid_out_of_order_items::compute();
887            #[cfg(feature = "grid")]
888            grid_size_child_fixed_tracks::compute();
889            justify_content_column_center::compute();
890            justify_content_column_flex_end::compute();
891            justify_content_column_flex_start::compute();
892            justify_content_column_min_height_and_margin_bottom::compute();
893            justify_content_column_min_height_and_margin_top::compute();
894            justify_content_column_space_around::compute();
895            justify_content_column_space_between::compute();
896            justify_content_column_space_evenly::compute();
897            justify_content_min_max::compute();
898            justify_content_min_width_with_padding_child_width_greater_than_parent::compute();
899            justify_content_min_width_with_padding_child_width_lower_than_parent::compute();
900            justify_content_overflow_min_max::compute();
901            justify_content_row_center::compute();
902            justify_content_row_flex_end::compute();
903            justify_content_row_flex_start::compute();
904            justify_content_row_max_width_and_margin::compute();
905            justify_content_row_min_width_and_margin::compute();
906            justify_content_row_space_around::compute();
907            justify_content_row_space_between::compute();
908            justify_content_row_space_evenly::compute();
909            margin_and_flex_column::compute();
910            margin_and_flex_row::compute();
911            margin_and_stretch_column::compute();
912            margin_and_stretch_row::compute();
913            margin_auto_bottom::compute();
914            margin_auto_bottom_and_top::compute();
915            margin_auto_bottom_and_top_justify_center::compute();
916            margin_auto_left::compute();
917            margin_auto_left_and_right::compute();
918            margin_auto_left_and_right_column::compute();
919            margin_auto_left_and_right_column_and_center::compute();
920            margin_auto_left_and_right_strech::compute();
921            margin_auto_left_child_bigger_than_parent::compute();
922            margin_auto_left_fix_right_child_bigger_than_parent::compute();
923            margin_auto_left_right_child_bigger_than_parent::compute();
924            margin_auto_left_stretching_child::compute();
925            margin_auto_mutiple_children_column::compute();
926            margin_auto_mutiple_children_row::compute();
927            margin_auto_right::compute();
928            margin_auto_top::compute();
929            margin_auto_top_and_bottom_strech::compute();
930            margin_auto_top_stretching_child::compute();
931            margin_bottom::compute();
932            margin_fix_left_auto_right_child_bigger_than_parent::compute();
933            margin_left::compute();
934            margin_right::compute();
935            margin_should_not_be_part_of_max_height::compute();
936            margin_should_not_be_part_of_max_width::compute();
937            margin_top::compute();
938            margin_with_sibling_column::compute();
939            margin_with_sibling_row::compute();
940            max_height::compute();
941            max_height_overrides_height::compute();
942            max_height_overrides_height_on_root::compute();
943            max_width::compute();
944            max_width_overrides_width::compute();
945            max_width_overrides_width_on_root::compute();
946            measure_child::compute();
947            measure_child_absolute::compute();
948            measure_child_constraint::compute();
949            measure_child_constraint_padding_parent::compute();
950            measure_child_with_flex_grow::compute();
951            measure_child_with_flex_shrink::compute();
952            measure_flex_basis_overrides_measure::compute();
953            measure_height_overrides_measure::compute();
954            measure_remeasure_child_after_growing::compute();
955            measure_remeasure_child_after_shrinking::compute();
956            measure_remeasure_child_after_stretching::compute();
957            measure_root::compute();
958            measure_stretch_overrides_measure::compute();
959            measure_width_overrides_measure::compute();
960            min_height::compute();
961            min_height_overrides_height::compute();
962            min_height_overrides_height_on_root::compute();
963            min_height_overrides_max_height::compute();
964            min_max_percent_no_width_height::compute();
965            min_width::compute();
966            min_width_overrides_max_width::compute();
967            min_width_overrides_width::compute();
968            min_width_overrides_width_on_root::compute();
969            nested_overflowing_child::compute();
970            nested_overflowing_child_in_constraint_parent::compute();
971            overflow_cross_axis::compute();
972            overflow_main_axis::compute();
973            padding_align_end_child::compute();
974            padding_center_child::compute();
975            padding_flex_child::compute();
976            padding_no_child::compute();
977            padding_stretch_child::compute();
978            parent_wrap_child_size_overflowing_parent::compute();
979            percent_absolute_position::compute();
980            percent_within_flex_grow::compute();
981            percentage_absolute_position::compute();
982            percentage_container_in_wrapping_container::compute();
983            percentage_flex_basis::compute();
984            percentage_flex_basis_cross::compute();
985            percentage_flex_basis_cross_max_height::compute();
986            percentage_flex_basis_cross_max_width::compute();
987            percentage_flex_basis_cross_min_height::compute();
988            percentage_flex_basis_cross_min_width::compute();
989            percentage_flex_basis_main_max_height::compute();
990            percentage_flex_basis_main_max_width::compute();
991            percentage_flex_basis_main_min_width::compute();
992            percentage_margin_should_calculate_based_only_on_width::compute();
993            percentage_multiple_nested_with_padding_margin_and_percentage_values::compute();
994            percentage_padding_should_calculate_based_only_on_width::compute();
995            percentage_position_bottom_right::compute();
996            percentage_position_left_top::compute();
997            percentage_size_based_on_parent_inner_size::compute();
998            percentage_size_of_flex_basis::compute();
999            percentage_width_height::compute();
1000            percentage_width_height_undefined_parent_size::compute();
1001            relative_position_should_not_nudge_siblings::compute();
1002            rounding_flex_basis_flex_grow_row_prime_number_width::compute();
1003            rounding_flex_basis_flex_grow_row_width_of_100::compute();
1004            rounding_flex_basis_flex_shrink_row::compute();
1005            rounding_flex_basis_overrides_main_size::compute();
1006            rounding_fractial_input_1::compute();
1007            rounding_fractial_input_2::compute();
1008            rounding_fractial_input_3::compute();
1009            rounding_fractial_input_4::compute();
1010            rounding_total_fractial::compute();
1011            rounding_total_fractial_nested::compute();
1012            size_defined_by_child::compute();
1013            size_defined_by_child_with_border::compute();
1014            size_defined_by_child_with_padding::compute();
1015            size_defined_by_grand_child::compute();
1016            width_smaller_then_content_with_flex_grow_large_size::compute();
1017            width_smaller_then_content_with_flex_grow_small_size::compute();
1018            width_smaller_then_content_with_flex_grow_unconstraint_size::compute();
1019            width_smaller_then_content_with_flex_grow_very_large_size::compute();
1020            wrap_column::compute();
1021            wrap_nodes_with_content_sizing_margin_cross::compute();
1022            wrap_nodes_with_content_sizing_overflowing_margin::compute();
1023            wrap_reverse_column::compute();
1024            wrap_reverse_column_fixed_size::compute();
1025            wrap_reverse_row::compute();
1026            wrap_reverse_row_align_content_center::compute();
1027            wrap_reverse_row_align_content_flex_start::compute();
1028            wrap_reverse_row_align_content_space_around::compute();
1029            wrap_reverse_row_align_content_stretch::compute();
1030            wrap_reverse_row_single_line_different_size::compute();
1031            wrap_row::compute();
1032            wrap_row_align_items_center::compute();
1033            wrap_row_align_items_flex_end::compute();
1034            wrapped_column_max_height::compute();
1035            wrapped_column_max_height_flex::compute();
1036            wrapped_row_within_align_items_center::compute();
1037            wrapped_row_within_align_items_flex_end::compute();
1038            wrapped_row_within_align_items_flex_start::compute();
1039        })
1040    });
1041}
1042criterion_group!(benches, benchmark);
1043criterion_main!(benches);