1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
mod includes;
pub mod device;
pub mod error;
pub mod memory;
pub mod ptr;
pub mod stream;
/// Convenience macro for turning a CUDA error code into a `std::result::Result`.
///
/// # Usage
///
/// There are two possible uses of the macro:
///
/// (1) Shorthand to return `Ok(something)` or a CUDA error:
///
/// ```ignore
/// result!(code, return_value);
/// ```
///
/// (2) Shorthand to return `Ok(())` or a CUDA error:
///
/// ```ignore
/// result!(code)
/// ```
macro_rules! result {
($code:expr, $ok:expr) => {
if $code == 0 {
Ok($ok)
} else {
Err($crate::error::Error::Cuda($code))
}
};
($code:expr) => {
result!($code, ())
};
}
use result;