rae 0.1.12

Renderer-neutral widget, layout, sanitization, and GLSL shader primitives for Rust desktop tools.
Documentation
use rae::{built_in_widget_catalog, WidgetCategory, WidgetUseCase};

fn main() {
    let catalog = built_in_widget_catalog();
    catalog.validate().expect("built-in catalog is valid");

    println!("{} v{}", catalog.name, catalog.version);
    println!("widgets: {}", catalog.widgets.len());
    println!("token presets: {}", catalog.token_presets.len());
    println!("layout recipes: {}", catalog.recipe_kinds.len());

    for category in [
        WidgetCategory::Action,
        WidgetCategory::Input,
        WidgetCategory::Selection,
        WidgetCategory::Navigation,
        WidgetCategory::DataDisplay,
        WidgetCategory::Ai,
        WidgetCategory::Code,
        WidgetCategory::ProAudio,
        WidgetCategory::Shell,
    ] {
        println!(
            "{:<14} {}",
            category.label(),
            catalog.by_category(category).len()
        );
    }

    println!("audio widgets:");
    for widget in catalog.by_use_case(WidgetUseCase::AudioProduction) {
        println!("- {:<20} {}", widget.id, widget.summary);
    }
}