gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 707HTML 660Markdown 12TOML 62344 Sutichaykuna

⎇ 9f42ca4a0d99e501f16c3148bd1caf12b37b2ac5 benches/complex.rs Rust · 107 siq'ikuna · 4.5 KB Ñawpa willay Pi imata llamkarqan ch'uya

Update benches to API changes 9f42ca4a0 · msiglreith ·

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);