spatial_led 0.3.0

Sled is an ergonomic rust library that maps out the shape of your LED strips in 2D space to help you create stunning lighting effects.
Documentation
mod drivers;
use drivers::comet;

use palette::rgb::Rgb;
use spatial_led::Sled;
use std::time::Duration;

fn trail(c: &mut Criterion) {
    let sled = Sled::<Rgb>::new("./benches/config.yap").unwrap();
    let mut driver = comet::build_driver();
    driver.mount(sled);

    let simulated_duration = 15.0;
    let simulated_hz = 60.0;
    let total_steps = (simulated_duration * simulated_hz) as usize;
    let timestep = Duration::from_secs_f32(1.0 / simulated_hz);
    let mut r = 0.0;

    c.bench_function("comet", |b| {
        b.iter(|| {
            for _ in 0..total_steps {
                driver.step_by(timestep);

                let mut colors = driver.colors();
                r = colors.next().unwrap().red;
            }
        });
    });
    println!("{}", r);
}

use criterion::{criterion_group, criterion_main, Criterion};

criterion_group! {
    name = benches;
    config = Criterion::default()
        .significance_level(0.05)
        .sample_size(30)
        .warm_up_time(Duration::from_secs_f32(5.0))
        .measurement_time(Duration::from_secs_f32(20.0));
    targets = trail
}
criterion_main!(benches);