rust-switcher 1.0.11

Windows keyboard layout switcher and text conversion utility
Documentation
#![cfg(windows)]

use crate::{config, platform::win::keyboard::sequence::chord_matches};

fn ch(mods: u32, mods_vks: u32, vk: Option<u32>) -> config::HotkeyChord {
    config::HotkeyChord { mods, mods_vks, vk }
}

#[test]
fn chord_matches_requires_same_mods() {
    let t = ch(1, 0, Some(65));
    let i = ch(2, 0, Some(65));
    assert!(!chord_matches(t, i));
}

#[test]
fn chord_matches_requires_same_mods_vks() {
    let t = ch(0, 4, Some(65));
    let i = ch(0, 8, Some(65));
    assert!(!chord_matches(t, i));
}

#[test]
fn chord_matches_vk_none_requires_none() {
    let t = ch(1, 0, None);

    let i_some = ch(1, 0, Some(70));
    assert!(!chord_matches(t, i_some));

    let i_none = ch(1, 0, None);
    assert!(chord_matches(t, i_none));
}

#[test]
fn chord_matches_vk_some_requires_exact() {
    let t = ch(1, 0, Some(65));
    let i = ch(1, 0, Some(66));
    assert!(!chord_matches(t, i));
}