tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 1061HTML 997Markdown 12TOML 83120 Sutichaykuna

⎇ 9e53f03adea2b770d68954e404d2fa407dfc7d40 benches/generated/absolute_layout_within_border.rs Rust · 121 siq'ikuna · 4.9 KB Ñawpa willay Pi imata llamkarqan ch'uya

Layout algorithm decoupling, Sizing Constraints & Perf Improvements (#246) ba4cd3c3b · Nico Burns ·

1pub fn compute() {
2    let mut taffy = taffy::Taffy::new();
3    let node0 = taffy
4        .new_with_children(
5            taffy::style::FlexboxLayout {
6                position_type: taffy::style::PositionType::Absolute,
7                size: taffy::geometry::Size {
8                    width: taffy::style::Dimension::Points(50f32),
9                    height: taffy::style::Dimension::Points(50f32),
10                    ..Default::default()
11                },
12                position: taffy::geometry::Rect {
13                    start: taffy::style::Dimension::Points(0f32),
14                    top: taffy::style::Dimension::Points(0f32),
15                    ..Default::default()
16                },
17                ..Default::default()
18            },
19            &[],
20        )
21        .unwrap();
22    let node1 = taffy
23        .new_with_children(
24            taffy::style::FlexboxLayout {
25                position_type: taffy::style::PositionType::Absolute,
26                size: taffy::geometry::Size {
27                    width: taffy::style::Dimension::Points(50f32),
28                    height: taffy::style::Dimension::Points(50f32),
29                    ..Default::default()
30                },
31                position: taffy::geometry::Rect {
32                    end: taffy::style::Dimension::Points(0f32),
33                    bottom: taffy::style::Dimension::Points(0f32),
34                    ..Default::default()
35                },
36                ..Default::default()
37            },
38            &[],
39        )
40        .unwrap();
41    let node2 = taffy
42        .new_with_children(
43            taffy::style::FlexboxLayout {
44                position_type: taffy::style::PositionType::Absolute,
45                size: taffy::geometry::Size {
46                    width: taffy::style::Dimension::Points(50f32),
47                    height: taffy::style::Dimension::Points(50f32),
48                    ..Default::default()
49                },
50                margin: taffy::geometry::Rect {
51                    start: taffy::style::Dimension::Points(10f32),
52                    end: taffy::style::Dimension::Points(10f32),
53                    top: taffy::style::Dimension::Points(10f32),
54                    bottom: taffy::style::Dimension::Points(10f32),
55                    ..Default::default()
56                },
57                position: taffy::geometry::Rect {
58                    start: taffy::style::Dimension::Points(0f32),
59                    top: taffy::style::Dimension::Points(0f32),
60                    ..Default::default()
61                },
62                ..Default::default()
63            },
64            &[],
65        )
66        .unwrap();
67    let node3 = taffy
68        .new_with_children(
69            taffy::style::FlexboxLayout {
70                position_type: taffy::style::PositionType::Absolute,
71                size: taffy::geometry::Size {
72                    width: taffy::style::Dimension::Points(50f32),
73                    height: taffy::style::Dimension::Points(50f32),
74                    ..Default::default()
75                },
76                margin: taffy::geometry::Rect {
77                    start: taffy::style::Dimension::Points(10f32),
78                    end: taffy::style::Dimension::Points(10f32),
79                    top: taffy::style::Dimension::Points(10f32),
80                    bottom: taffy::style::Dimension::Points(10f32),
81                    ..Default::default()
82                },
83                position: taffy::geometry::Rect {
84                    end: taffy::style::Dimension::Points(0f32),
85                    bottom: taffy::style::Dimension::Points(0f32),
86                    ..Default::default()
87                },
88                ..Default::default()
89            },
90            &[],
91        )
92        .unwrap();
93    let node = taffy
94        .new_with_children(
95            taffy::style::FlexboxLayout {
96                size: taffy::geometry::Size {
97                    width: taffy::style::Dimension::Points(100f32),
98                    height: taffy::style::Dimension::Points(100f32),
99                    ..Default::default()
100                },
101                padding: taffy::geometry::Rect {
102                    start: taffy::style::Dimension::Points(10f32),
103                    end: taffy::style::Dimension::Points(10f32),
104                    top: taffy::style::Dimension::Points(10f32),
105                    bottom: taffy::style::Dimension::Points(10f32),
106                    ..Default::default()
107                },
108                border: taffy::geometry::Rect {
109                    start: taffy::style::Dimension::Points(10f32),
110                    end: taffy::style::Dimension::Points(10f32),
111                    top: taffy::style::Dimension::Points(10f32),
112                    bottom: taffy::style::Dimension::Points(10f32),
113                    ..Default::default()
114                },
115                ..Default::default()
116            },
117            &[node0, node1, node2, node3],
118        )
119        .unwrap();
120    taffy.compute_layout(node, taffy::geometry::Size::MAX_CONTENT).unwrap();
121}