mod-cli 0.6.4

A fully customizable, feature-rich CLI framework for Rust. Define commands, prefixes, styled output, and more—built for flexibility and speed.
Documentation
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use modcli::output::table::{render_table, TableMode, TableStyle};

fn bench_table(c: &mut Criterion) {
    let headers = ["Col1", "Col2", "Col3", "Col4"];
    let rows: Vec<Vec<&str>> = (0..100)
        .map(|i| {
            vec![
                "row",
                "with",
                "some",
                Box::leak(format!("data-{i}").into_boxed_str()),
            ]
        })
        .collect();

    c.bench_function("table_flex_heavy", |b| {
        b.iter(|| {
            render_table(
                &headers,
                black_box(&rows),
                TableMode::Flex,
                TableStyle::Heavy,
            );
        })
    });

    c.bench_function("table_fixed_rounded", |b| {
        b.iter(|| {
            render_table(
                &headers,
                black_box(&rows),
                TableMode::Fixed(16),
                TableStyle::Rounded,
            );
        })
    });
}

criterion_group!(benches, bench_table);
criterion_main!(benches);