tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

HTML 5544Rust 88Markdown 11TOML 91926 Definitions

⎇ b4aa21f2f9d7fedcdaec168c9637cc4e0e14a708 benches/complex.rs Rust · 128 lines · 6.8 KB History Who touched what raw

update tests and benchmarks to use new api 1f8c44154 · Emil Sjölander ·

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            stretch::node::Node::new(
7                stretch::style::Style { ..Default::default() },
8                vec![
9                    &stretch::node::Node::new(
10                        stretch::style::Style { ..Default::default() },
11                        vec![
12                            &stretch::node::Node::new(
13                                stretch::style::Style { ..Default::default() },
14                                vec![
15                                    &stretch::node::Node::new(
16                                        stretch::style::Style {
17                                            size: stretch::geometry::Size {
18                                                width: stretch::style::Dimension::Points(10.0),
19                                                height: stretch::style::Dimension::Points(10.0),
20                                            },
21                                            ..Default::default()
22                                        },
23                                        vec![],
24                                    ),
25                                    &stretch::node::Node::new(
26                                        stretch::style::Style {
27                                            size: stretch::geometry::Size {
28                                                width: stretch::style::Dimension::Points(10.0),
29                                                height: stretch::style::Dimension::Points(10.0),
30                                            },
31                                            ..Default::default()
32                                        },
33                                        vec![],
34                                    ),
35                                ],
36                            ),
37                            &stretch::node::Node::new(
38                                stretch::style::Style { ..Default::default() },
39                                vec![
40                                    &stretch::node::Node::new(
41                                        stretch::style::Style {
42                                            size: stretch::geometry::Size {
43                                                width: stretch::style::Dimension::Points(10.0),
44                                                height: stretch::style::Dimension::Points(10.0),
45                                            },
46                                            ..Default::default()
47                                        },
48                                        vec![],
49                                    ),
50                                    &stretch::node::Node::new(
51                                        stretch::style::Style {
52                                            size: stretch::geometry::Size {
53                                                width: stretch::style::Dimension::Points(10.0),
54                                                height: stretch::style::Dimension::Points(10.0),
55                                            },
56                                            ..Default::default()
57                                        },
58                                        vec![],
59                                    ),
60                                ],
61                            ),
62                        ],
63                    ),
64                    &stretch::node::Node::new(
65                        stretch::style::Style { ..Default::default() },
66                        vec![
67                            &stretch::node::Node::new(
68                                stretch::style::Style { ..Default::default() },
69                                vec![
70                                    &stretch::node::Node::new(
71                                        stretch::style::Style {
72                                            size: stretch::geometry::Size {
73                                                width: stretch::style::Dimension::Points(10.0),
74                                                height: stretch::style::Dimension::Points(10.0),
75                                            },
76                                            ..Default::default()
77                                        },
78                                        vec![],
79                                    ),
80                                    &stretch::node::Node::new(
81                                        stretch::style::Style {
82                                            size: stretch::geometry::Size {
83                                                width: stretch::style::Dimension::Points(10.0),
84                                                height: stretch::style::Dimension::Points(10.0),
85                                            },
86                                            ..Default::default()
87                                        },
88                                        vec![],
89                                    ),
90                                ],
91                            ),
92                            &stretch::node::Node::new(
93                                stretch::style::Style { ..Default::default() },
94                                vec![
95                                    &stretch::node::Node::new(
96                                        stretch::style::Style {
97                                            size: stretch::geometry::Size {
98                                                width: stretch::style::Dimension::Points(10.0),
99                                                height: stretch::style::Dimension::Points(10.0),
100                                            },
101                                            ..Default::default()
102                                        },
103                                        vec![],
104                                    ),
105                                    &stretch::node::Node::new(
106                                        stretch::style::Style {
107                                            size: stretch::geometry::Size {
108                                                width: stretch::style::Dimension::Points(10.0),
109                                                height: stretch::style::Dimension::Points(10.0),
110                                            },
111                                            ..Default::default()
112                                        },
113                                        vec![],
114                                    ),
115                                ],
116                            ),
117                        ],
118                    ),
119                ],
120            )
121            .compute_layout(stretch::geometry::Size::undefined())
122            .unwrap()
123        })
124    });
125}
126
127criterion_group!(benches, stretch_benchmarks);
128criterion_main!(benches);