safemlx 0.2.2

Low-level MLX execution layer used by the Eredu model runtime
Documentation
//! CUDA backend configuration.

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

fn check_status(status: i32) -> Result<()> {
    if status == 0 {
        Ok(())
    } else {
        Err(error::get_and_clear_last_mlx_error()
            .expect("MLX CUDA operation failed but no error was set")
            .into())
    }
}

/// Returns whether the MLX CUDA backend is available on the current device.
pub fn is_available() -> Result<bool> {
    error::ensure_mlx_error_handler();
    let mut available = false;
    check_status(unsafe { safemlx_sys::mlx_cuda_is_available(&mut available) })?;
    Ok(available)
}