Skip to main content

bench_layout/
bench_layout.rs

1use std::time::Instant;
2
3use sequoia_layout::Axis;
4use sequoia_layout::{ContainerStyle, distribute_flex, resolve_tracks};
5
6fn main() {
7    let n = 100_000usize;
8
9    let items: Vec<sequoia_layout::FlexItem> = (0..n)
10        .map(|_| sequoia_layout::FlexItem::new(10.0, 1.0, 1.0, 0.0, f32::INFINITY))
11        .collect();
12    let mut sizes = vec![10.0; n];
13    let t = Instant::now();
14    distribute_flex(&items, &mut sizes, 0.0, 1_000_000.0);
15    println!("sequoia distribute_flex {n}: {:?}", t.elapsed());
16
17    let tracks = vec![sequoia_layout::Track::Fill(1.0); n.min(1000)];
18    let content = vec![0.0; tracks.len()];
19    let t = Instant::now();
20    let _ = resolve_tracks(&tracks, &content, 1_000_000.0, 0.0);
21    println!("sequoia resolve_tracks {}: {:?}", tracks.len(), t.elapsed());
22
23    let _ = ContainerStyle::default();
24    let _ = Axis::Horizontal;
25}