tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 707HTML 660Markdown 12TOML 62344 Definitions

⎇ 4f43428b5e387dafa19cbcc0c5217fc8e61d0ce6 benches/generated/grid_size_child_fixed_tracks.rs Rust · 88 lines · 3.9 KB History Who touched what raw

Grid/width depends on height tests (#300) 4f43428b5 · Nico Burns ·

1pub fn compute() {
2    #[allow(unused_imports)]
3    use taffy::prelude::*;
4    let mut taffy = taffy::Taffy::new();
5    let node0 = taffy
6        .new_leaf_with_measure(
7            taffy::style::Style {
8                align_self: Some(taffy::style::AlignSelf::Start),
9                justify_self: Some(taffy::style::JustifySelf::Start),
10                ..Default::default()
11            },
12            taffy::node::MeasureFunc::Raw(|known_dimensions, available_space| {
13                const TEXT: &str = "HH\u{200b}HH\u{200b}HH\u{200b}HH";
14                super::measure_standard_text(known_dimensions, available_space, TEXT, super::WritingMode::Horizontal)
15            }),
16        )
17        .unwrap();
18    let node1 = taffy
19        .new_leaf_with_measure(
20            taffy::style::Style {
21                align_self: Some(taffy::style::AlignSelf::Start),
22                justify_self: Some(taffy::style::JustifySelf::Start),
23                ..Default::default()
24            },
25            taffy::node::MeasureFunc::Raw(|known_dimensions, available_space| {
26                const TEXT: &str = "HHH\u{200b}HHH";
27                super::measure_standard_text(known_dimensions, available_space, TEXT, super::WritingMode::Horizontal)
28            }),
29        )
30        .unwrap();
31    let node2 = taffy
32        .new_leaf_with_measure(
33            taffy::style::Style {
34                align_self: Some(taffy::style::AlignSelf::Start),
35                justify_self: Some(taffy::style::JustifySelf::Start),
36                ..Default::default()
37            },
38            taffy::node::MeasureFunc::Raw(|known_dimensions, available_space| {
39                const TEXT: &str = "HH\u{200b}HHHH";
40                super::measure_standard_text(known_dimensions, available_space, TEXT, super::WritingMode::Horizontal)
41            }),
42        )
43        .unwrap();
44    let node3 = taffy
45        .new_leaf_with_measure(
46            taffy::style::Style {
47                align_self: Some(taffy::style::AlignSelf::Start),
48                justify_self: Some(taffy::style::JustifySelf::Start),
49                size: taffy::geometry::Size { width: taffy::style::Dimension::Points(20f32), height: auto() },
50                ..Default::default()
51            },
52            taffy::node::MeasureFunc::Raw(|known_dimensions, available_space| {
53                const TEXT: &str = "HH\u{200b}HH\u{200b}HH\u{200b}HH";
54                super::measure_standard_text(known_dimensions, available_space, TEXT, super::WritingMode::Horizontal)
55            }),
56        )
57        .unwrap();
58    let node4 = taffy
59        .new_leaf_with_measure(
60            taffy::style::Style {
61                align_self: Some(taffy::style::AlignSelf::Start),
62                justify_self: Some(taffy::style::JustifySelf::Start),
63                max_size: taffy::geometry::Size { width: taffy::style::Dimension::Points(30f32), height: auto() },
64                ..Default::default()
65            },
66            taffy::node::MeasureFunc::Raw(|known_dimensions, available_space| {
67                const TEXT: &str = "HH\u{200b}HH\u{200b}HH\u{200b}HH";
68                super::measure_standard_text(known_dimensions, available_space, TEXT, super::WritingMode::Horizontal)
69            }),
70        )
71        .unwrap();
72    let node = taffy
73        .new_with_children(
74            taffy::style::Style {
75                display: taffy::style::Display::Grid,
76                grid_template_rows: vec![points(40f32), points(40f32), points(40f32)],
77                grid_template_columns: vec![points(40f32), points(40f32), points(40f32)],
78                size: taffy::geometry::Size {
79                    width: taffy::style::Dimension::Points(120f32),
80                    height: taffy::style::Dimension::Points(120f32),
81                },
82                ..Default::default()
83            },
84            &[node0, node1, node2, node3, node4],
85        )
86        .unwrap();
87    taffy.compute_layout(node, taffy::geometry::Size::MAX_CONTENT).unwrap();
88}