1#![doc = include_str!("../Readme.md")]
2
3#![debugger_visualizer(natvis_file = "../xinput.natvis")]
4#![cfg_attr(doc_cfg, feature(doc_cfg))]
5
6#![deny(unsafe_op_in_unsafe_fn)]
7#![warn(rustdoc::broken_intra_doc_links)]
8#![warn(missing_docs)]
9#![deny(unreachable_patterns)] #![allow(clippy::identity_op)] #![allow(clippy::missing_safety_doc)] #![allow(clippy::derivable_impls)] #![allow(clippy::too_many_arguments)] #[cfg(doc)] #[path = "../doc/_doc.rs"] pub mod _doc;
19#[macro_use] mod macros;
20#[macro_use] mod error_macros;
21
22pub mod error; #[doc(no_inline)] pub use error::Error;
23#[path = "interop/_interop.rs"] mod interop;
24
25macro_rules! check_success { ( $err:expr ) => { $crate::check_error_success(&_THINDX_FN_CONTEXT, $err) } }
26
27mods! {
28 inl mod constants {
29 pub mod xuser;
30 }
31
32 inl mod dll {
33 pub(crate) mod imports;
34 }
35
36 inl mod enumerations {
37 inl mod battery_devtype;
38 inl mod battery_level;
39 inl mod battery_type;
40 inl mod devsubtype;
41 inl mod devtype;
42 inl mod vk;
43 }
44
45 inl mod flags {
46 inl mod buttons;
47 inl mod caps;
48 inl mod flag;
49 inl mod keystroke;
50 }
51
52 inl mod functions {
53 inl mod enable_;
54 inl mod get_audio_device_ids_;
55 inl mod get_battery_information_;
56 inl mod get_capabilities_;
57 inl mod get_dsound_audio_device_guids_;
58 inl mod get_keystroke_;
59 inl mod get_state_;
60 inl mod set_state_;
61 #[cfg(doc)] pub mod todo;
62 }
63
64 inl mod structures {
65 inl mod audio_device_ids;
66 inl mod battery_information;
67 inl mod capabilities;
68 inl mod dsound_audio_device_guids;
69 inl mod gamepad;
70 inl mod keystroke;
71 inl mod state;
72 inl mod vibration;
73 }
74}
75
76include!("functions/get_state_ex_.rs");
77include!("functions/power_off_controller_.rs");
78
79pub(crate) fn check_error_success(fn_context: &'static crate::error_macros::FnContext, err: u32) -> Result<(), Error> {
80 if err == winresult::ERROR::SUCCESS.to_u32() {
81 Ok(())
82 } else {
83 Err(Error(fn_context, error::Kind::from_u32(err)))
84 }
85}