tawasuyu

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 701HTML 654Markdown 12TOML 62332 Sutichaykuna

⎇ 610c92f3104d022ec1d8d8ada24f9db412ff4e2c benches/generated/grid_min_content_flex_single_item.rs Rust · 50 siq'ikuna · 2.1 KB Ñawpa willay Pi imata llamkarqan ch'uya

Fixes for aspect ratio and min/max sizes (#317) 610c92f31 · Nico Burns ·

1pub fn compute() {
2    #[allow(unused_imports)]
3    use taffy::prelude::*;
4    let mut taffy = taffy::Taffy::new();
5    let node0 = taffy.new_leaf(taffy::style::Style { ..Default::default() }).unwrap();
6    let node1 = taffy
7        .new_leaf(taffy::style::Style {
8            min_size: taffy::geometry::Size { width: taffy::style::Dimension::Points(10f32), height: auto() },
9            ..Default::default()
10        })
11        .unwrap();
12    let node2 = taffy.new_leaf(taffy::style::Style { ..Default::default() }).unwrap();
13    let node3 = taffy.new_leaf(taffy::style::Style { ..Default::default() }).unwrap();
14    let node4 = taffy
15        .new_leaf_with_measure(
16            taffy::style::Style {
17                grid_column: taffy::geometry::Line {
18                    start: taffy::style::GridPlacement::Span(2u16),
19                    end: taffy::style::GridPlacement::Auto,
20                },
21                ..Default::default()
22            },
23            taffy::node::MeasureFunc::Raw(|known_dimensions, available_space| {
24                const TEXT: &str = "HH\u{200b}HH";
25                super::measure_standard_text(
26                    known_dimensions,
27                    available_space,
28                    TEXT,
29                    super::WritingMode::Horizontal,
30                    None,
31                )
32            }),
33        )
34        .unwrap();
35    let node5 = taffy.new_leaf(taffy::style::Style { ..Default::default() }).unwrap();
36    let node6 = taffy.new_leaf(taffy::style::Style { ..Default::default() }).unwrap();
37    let node7 = taffy.new_leaf(taffy::style::Style { ..Default::default() }).unwrap();
38    let node = taffy
39        .new_with_children(
40            taffy::style::Style {
41                display: taffy::style::Display::Grid,
42                grid_template_rows: vec![points(40f32), points(40f32), points(40f32)],
43                grid_template_columns: vec![points(40f32), min_content(), flex(1f32)],
44                ..Default::default()
45            },
46            &[node0, node1, node2, node3, node4, node5, node6, node7],
47        )
48        .unwrap();
49    taffy.compute_layout(node, taffy::geometry::Size::MAX_CONTENT).unwrap();
50}