nvapi_hi/
lib.rs

1#![doc(html_root_url = "http://arcnmx.github.io/nvapi-rs/")]
2
3pub extern crate nvapi;
4
5#[cfg(feature = "serde_derive")]
6#[macro_use]
7extern crate serde_derive;
8
9mod gpu;
10pub use gpu::*;
11
12pub use nvapi::{
13    Status, Result,
14    sys,
15    initialize, unload, driver_version, interface_version, error_message
16};
17
18pub fn allowable_result_fallback<T>(v: nvapi::Result<T>, fallback: T) -> nvapi::Result<T> {
19    match v {
20        Ok(v) => Ok(v),
21        Err(Status::NotSupported) | Err(Status::NoImplementation) | Err(Status::ArgumentExceedMaxSize) => Ok(fallback),
22        Err(e) => Err(e),
23    }
24}
25
26pub fn allowable_result<T>(v: nvapi::Result<T>) -> nvapi::Result<nvapi::Result<T>> {
27    match v {
28        Ok(v) => Ok(Ok(v)),
29        Err(e @ Status::NotSupported) | Err(e @ Status::NoImplementation) => Ok(Err(e)),
30        Err(e) => Err(e),
31    }
32}