1#![allow(non_camel_case_types, non_snake_case)]
2#![doc(html_root_url = "http://arcnmx.github.io/nvapi-rs/")]
3
4#[cfg(windows)]
5extern crate winapi;
6#[macro_use]
7extern crate bitflags;
8
9#[cfg(feature = "serde_derive")]
10#[macro_use]
11extern crate serde_derive;
12
13#[macro_use]
14mod macros;
15
16#[macro_use]
17mod debug_array;
18pub use debug_array::Array;
19
20pub mod nvid;
21pub mod nvapi;
22pub mod status;
23pub mod types;
24
25pub mod handles;
34
35pub mod driverapi;
37
38pub mod gpu;
40
41pub mod i2c;
44
45#[cfg(windows)]
46pub mod dx;
47
48pub mod dispcontrol;
49
50pub use nvid::Api;
51pub use nvapi::nvapi_QueryInterface;
52pub use types::*;
53pub use status::{NvAPI_Status, Status};
54
55use std::result;
56
57pub type Result<T> = result::Result<T, Status>;
59
60pub fn status_result(status: NvAPI_Status) -> Result<()> {
62 match status {
63 status::NVAPI_OK => Ok(()),
64 status => Err(Status::from_raw(status).unwrap_or(Status::Error)),
65 }
66}
67
68#[derive(Debug, Copy, Clone, Default)]
70pub struct ArgumentRangeError;
71
72impl From<ArgumentRangeError> for Status {
73 fn from(_: ArgumentRangeError) -> Self {
74 Status::ArgumentExceedMaxSize
75 }
76}
77
78