Macro cambridge_asm::inst[][src]

macro_rules! inst {
    ($(#[$outer : meta]) * $name : ident | $ctx : ident, $op : ident |
 { $($code : tt) * }) => { ... };
    ($(#[$outer : meta]) * $name : ident | $ctx : ident | { $($code : tt) * }) => { ... };
    ($(#[$outer : meta]) * $name : ident { $($code : tt) * }) => { ... };
    ($(#[$outer : meta]) * $name : ident | $ctx : ident, $op : ident | override
 { $($code : tt) * }) => { ... };
    ($(#[$outer : meta]) * $name : ident | $ctx : ident | override
 { $($code : tt) * }) => { ... };
    ($(#[$outer : meta]) * $name : ident override { $($code : tt) * }) => { ... };
}
Expand description

Macro to generate an instruction implementation

Examples

// Ensure all types are imported
use cambridge_asm::{exec::{PasmResult, Op, Context}, inst};

// No Context
inst!(name1 { /* Do something that doesn't need context or op*/ });

// Context only
inst!(name2 | ctx | { /* Do something with ctx */ });

// Context and op
inst!(name3 | ctx, op | { /* Do something with ctx and op */ });

For further reference, look at the source of the module [exec::io]