Skip to main content

defer

Macro defer 

Source
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![] => ... };