Macro encoder_config

Source
macro_rules! encoder_config {
    (
        impl $config_name:ty,
        debounce_timer: $timer_type:ty = $timer_value:expr,
        counts_div: $counts_type:ty = $counts_div_value:expr
    ) => { ... };
    (
        $vis:vis $config_name:ident,
        debounce_timer: $timer_type:ty = $timer_value:expr,
        counts_div: $counts_type:ty = $counts_div_value:expr
    ) => { ... };
}
Expand description

Create a config for Encoder.

§Example 1

encoder_config!(
    SomeEncoderConfig,
    debounce_timer: MyElapsedTimer = MyElapsedTimer::new(2.millis()),
    counts_div: i8 = 4
);

type MyEncoder<SwitchA, SwitchB> = Encoder<SwitchA, SwitchB, SomeEncoderConfig>;

§Example 2

encoder_config!(
    pub SomeEncoderConfig,
    debounce_timer: MyElapsedTimer = MyElapsedTimer::new(2.millis()),
    counts_div: i8 = 4
);

type MyEncoder<SwitchA, SwitchB> = Encoder<SwitchA, SwitchB, SomeEncoderConfig>;

§Example 3

pub struct SomeEncoderConfig;

encoder_config!(
    impl SomeEncoderConfig,
    debounce_timer: MyElapsedTimer = MyElapsedTimer::new(2.millis()),
    counts_div: i8 = 4
);

type MyEncoder<SwitchA, SwitchB> = Encoder<SwitchA, SwitchB, SomeEncoderConfig>;