use crate;
use TokenStream as TS;
use parse_macro_input as pm;
/// Specifies that a block of code will be 'emitted'.
/// Without an `accio!` or an `accio_body!` invocation,
/// `accio_emit!` is no-op.
/// Any tokens passed to `accio_emit` are consumed.
/// Collects the tokens emitted by `accio_emit!`
/// invocations with the same _scope_ (key)
/// and expands to all the tokens collected.
/// The order may not be preserved.
/// Invocations of this macro cannot be nested.
/// Attribute macro variant of `accio`, for expanding
/// into item body blocks (e.g. struct fields, enum variants,
/// array elements etc). Replaces the first empty curly brace
/// (`{}`) or square bracket (`[]`) encountered.