macro_rules! defer {
( $($i:ident $(@ $e:expr)?),* => $($body:tt)* ) => { ... };
( $($body:tt)* ) => { ... };
}Expand description
A macro to defer execution until the end of the stack frame.
No argument:
// body ──────┐
defer! { ... };Single argument:
// body ───────┐
// ident ────┐ │
defer! { v => ... };Multiple arguments:
// body ────────┐
// ident ────┐ │
// ident ────┐ │ │
defer! { v1, v2 => ... };Bindings:
// body ───────────────────────┐
// expr ──────────────────┐ │
// ident ──────────┐ │ │
// expr ───────────┐ │ │ │
// ident ────┐ │ │ │ │
// ident ────┐ │ │ │ │ │
defer! { v1, v2 @ foo, v3 @ vec![] => ... };