pub unsafe fn cuda_result_call<T, F: FnOnce(*mut T) -> CUresult>(
    cb: F
) -> Result<T, Error>