smallbox 0.8.8

`Small Box` optimization: store small item on stack and fallback to heap for large item.
Documentation
use smallbox::SmallBox;
use smallbox::space::*;

fn main() {
    divan::main();
}

#[divan::bench]
fn smallbox_small_item_small_space() {
    divan::black_box({
        let small: SmallBox<_, S1> = SmallBox::new(divan::black_box(true));
        small
    });
}

#[divan::bench]
fn smallbox_small_item_large_space() {
    divan::black_box({
        let small: SmallBox<_, S64> = SmallBox::new(divan::black_box(true));
        small
    });
}

#[divan::bench]
fn smallbox_large_item_small_space() {
    divan::black_box({
        let large: SmallBox<_, S1> = SmallBox::new(divan::black_box([0usize; 64]));
        large
    });
}

#[divan::bench]
fn smallbox_large_item_large_space() {
    divan::black_box({
        let large: SmallBox<_, S64> = SmallBox::new(divan::black_box([0usize; 64]));
        large
    });
}

#[divan::bench]
fn box_small_item() {
    divan::black_box({
        let large: Box<_> = Box::new(divan::black_box(true));
        large
    });
}

#[divan::bench]
fn box_large_item() {
    divan::black_box({
        let large: Box<_> = Box::new(divan::black_box([0usize; 64]));
        large
    });
}