alloc-once-macros 0.1.0-rc.3

Procedural macro implementation detail of the `alloc-once` crate.
Documentation

Procedural macro backing alloc_once!.

alloc_once!(
    n = 1i32;
    bytes = [10u8, 20, 30];
    s = "hello";
);
// n, bytes, s are now in scope as &mut into a single arena allocation.

alloc_once! packs the named values into a single tuple, allocates that tuple once inside a freshly created bump arena, and expands to statements that bring each name into scope as a &mut into the arena. A hidden guard binding owns the arena and keeps it alive until the end of the scope; the values' destructors run and the arena is freed when it drops.

All bumpalo details are hidden: the expansion only names paths under ::alloc_once, so callers need no bumpalo dependency of their own.