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.