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
]