# olympia_derive olympia_derive currently provides one derive macro, OlympiaInstruction. A usage example for a two argument instruction is below: ```rust #[derive(OlympiaInstruction)] #[olympia( opcode=0x00AA_A111, label="LD", excluded(0b1010_1100) )] struct LoadRegisterConstant8 { #[olympia(dest, mask=0xA)] dest: ByteRegisterLookup, #[olympia(src)] src: u8, } ``` A usage example for one argument instruction is below: ```rust #[derive(OlympiaInstruction)] #[olympia( opcode=0x110A_A000, label="RET", )] struct ReturnIf { #[olympia(single, mask=0xA)] dest: ByteRegisterLookup, } ``` A usage example for no argument instruction is below: ```rust #[derive(OlympiaInstruction)] #[olympia( opcode=0x1100_1001, label="RET", )] struct ReturnIf; ```