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,
},]],
);