rae 0.1.4

Renderer-neutral widget, layout, state, and GLSL shader primitives for agentic Rust desktop tools.
Documentation
use rae::{compute_agent_layout, Rect};

fn main() {
    let viewports = [
        ("desktop", Rect::new(0.0, 0.0, 1920.0, 1080.0)),
        ("laptop", Rect::new(0.0, 0.0, 1366.0, 768.0)),
        ("tablet", Rect::new(0.0, 0.0, 900.0, 720.0)),
        ("phone", Rect::new(0.0, 0.0, 430.0, 860.0)),
    ];

    for (label, viewport) in viewports {
        let layout = compute_agent_layout(viewport);
        println!("\n{label} {:?}", rect_tuple(layout.root));
        println!("  header  {:?}", rect_tuple(layout.header));
        println!("  main    {:?}", rect_tuple(layout.main));
        println!(
            "  sidebar {:?} collapsed:{}",
            rect_tuple(layout.sidebar),
            layout.sidebar_collapsed
        );
        println!("  prompt  {:?}", rect_tuple(layout.prompt));
        println!("  status  {:?}", rect_tuple(layout.status));
    }
}

fn rect_tuple(rect: Rect) -> (i32, i32, i32, i32) {
    (
        rect.x.round() as i32,
        rect.y.round() as i32,
        rect.width.round() as i32,
        rect.height.round() as i32,
    )
}