use singe_cuda_sys::runtime;

use crate::{error::Result, try_cuda};

/// Returns the version number of the CUDA Runtime.
pub fn version() -> Result<i32> {
    let mut version: i32 = 0;
    unsafe {
        try_cuda!(runtime::cudaRuntimeGetVersion(&raw mut version))?;
    }
    Ok(version)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        assert_ne!(version().unwrap(), 0);
    }
}