Macro result_guide

Source
result_guide!() { /* proc-macro */ }
Expand description

Takes a list of sequences of combos of Capabilities and turns it into a u8 array that can be stored in memory as a contiguous piece of data. This is necessary to store the result guide independently of rust compilation.

use kll_core::{Capability, CapabilityState};

const RESULT_GUIDES: &'static [u8] = kll_macros::result_guide!(
    [
        // Press Shift + A; Release Shift; Release A
        [
            Capability::HidKeyboard {
                state: CapabilityState::Initial,
                loop_condition_index: 0,
                id: kll_hid::Keyboard::A,
            },
            Capability::HidKeyboard {
                state: CapabilityState::Initial,
                loop_condition_index: 0,
                id: kll_hid::Keyboard::LeftShift,
            },
        ],
        [Capability::HidKeyboard {
            state: CapabilityState::Last,
            loop_condition_index: 0,
            id: kll_hid::Keyboard::LeftShift,
        },],
        [Capability::HidKeyboard {
            state: CapabilityState::Last,
            loop_condition_index: 0,
            id: kll_hid::Keyboard::A,
        },],
    ],
    // Press B
    [[Capability::HidKeyboard {
        state: CapabilityState::Initial,
        loop_condition_index: 0,
        id: kll_hid::Keyboard::B,
    },]],
    // Release B
    [[Capability::HidKeyboard {
        state: CapabilityState::Last,
        loop_condition_index: 0,
        id: kll_hid::Keyboard::B,
    },]],
);