⎇ 9f42ca4a0d99e501f16c3148bd1caf12b37b2ac5
benches/complex.rs
Ñawpa willay
Pi imata llamkarqan
ch'uya
1use criterion::{criterion_group, criterion_main, Criterion};
2
3fn stretch_benchmarks(c: &mut Criterion) {
4 c.bench_function("deep hierarchy", |b| {
5 b.iter(|| {
6 let mut stretch = stretch::node::Stretch::new();
7
8 let node111 = stretch.new_node(
9 stretch::style::Style {
10 size: stretch::geometry::Size {
11 width: stretch::style::Dimension::Points(10.0),
12 height: stretch::style::Dimension::Points(10.0),
13 },
14 ..Default::default()
15 },
16 vec![],
17 ).unwrap();
18 let node112 = stretch.new_node(
19 stretch::style::Style {
20 size: stretch::geometry::Size {
21 width: stretch::style::Dimension::Points(10.0),
22 height: stretch::style::Dimension::Points(10.0),
23 },
24 ..Default::default()
25 },
26 vec![],
27 ).unwrap();
28
29 let node121 = stretch.new_node(
30 stretch::style::Style {
31 size: stretch::geometry::Size {
32 width: stretch::style::Dimension::Points(10.0),
33 height: stretch::style::Dimension::Points(10.0),
34 },
35 ..Default::default()
36 },
37 vec![],
38 ).unwrap();
39 let node122 = stretch.new_node(
40 stretch::style::Style {
41 size: stretch::geometry::Size {
42 width: stretch::style::Dimension::Points(10.0),
43 height: stretch::style::Dimension::Points(10.0),
44 },
45 ..Default::default()
46 },
47 vec![],
48 ).unwrap();
49
50 let node11 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node111, node112]).unwrap();
51 let node12 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node121, node122]).unwrap();
52 let node1 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node11, node12]).unwrap();
53
54 let node211 = stretch.new_node(
55 stretch::style::Style {
56 size: stretch::geometry::Size {
57 width: stretch::style::Dimension::Points(10.0),
58 height: stretch::style::Dimension::Points(10.0),
59 },
60 ..Default::default()
61 },
62 vec![],
63 ).unwrap();
64 let node212 = stretch.new_node(
65 stretch::style::Style {
66 size: stretch::geometry::Size {
67 width: stretch::style::Dimension::Points(10.0),
68 height: stretch::style::Dimension::Points(10.0),
69 },
70 ..Default::default()
71 },
72 vec![],
73 ).unwrap();
74
75 let node221 = stretch.new_node(
76 stretch::style::Style {
77 size: stretch::geometry::Size {
78 width: stretch::style::Dimension::Points(10.0),
79 height: stretch::style::Dimension::Points(10.0),
80 },
81 ..Default::default()
82 },
83 vec![],
84 ).unwrap();
85 let node222 = stretch.new_node(
86 stretch::style::Style {
87 size: stretch::geometry::Size {
88 width: stretch::style::Dimension::Points(10.0),
89 height: stretch::style::Dimension::Points(10.0),
90 },
91 ..Default::default()
92 },
93 vec![],
94 ).unwrap();
95
96 let node21 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node211, node212]).unwrap();
97 let node22 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node221, node222]).unwrap();
98
99 let node2 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node21, node22]).unwrap();
100 let node0 = stretch.new_node(stretch::style::Style { ..Default::default() }, vec![node1, node2]).unwrap();
101 stretch.compute_layout(node0, stretch::geometry::Size::undefined()).unwrap()
102 })
103 });
104}
105
106criterion_group!(benches, stretch_benchmarks);
107criterion_main!(benches);