match的分支支持很多高级写法的。
下面是比较常见的一种。亮点是多分支都解构出了同样的mod_keys.
/// Returns associated keyboard modifiers.
#[must_use]
pub const fn mod_keys(self) -> ModKeys {
match self {
Input::Keyboard { mod_keys, .. }
| Input::MouseButton { mod_keys, .. }
| Input::MouseMotion { mod_keys }
| Input::MouseWheel { mod_keys } => mod_keys,
Input::GamepadButton(_) | Input::GamepadAxis(_) => ModKeys::empty(),
}
}