use crate::{error::Result, utils::guard::Guarded};
pub fn clear_cache() -> Result<()> {
<()>::try_from_op(|_| unsafe { mlx_sys::mlx_clear_cache() })
}
pub fn active_memory() -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_get_active_memory(res) })
}
pub fn cache_memory() -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_get_cache_memory(res) })
}
pub fn peak_memory() -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_get_peak_memory(res) })
}
pub fn reset_peak_memory() -> Result<()> {
<()>::try_from_op(|_| unsafe { mlx_sys::mlx_reset_peak_memory() })
}
pub fn memory_limit() -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_get_memory_limit(res) })
}
pub fn set_memory_limit(limit: usize) -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_set_memory_limit(res, limit) })
}
pub fn set_cache_limit(limit: usize) -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_set_cache_limit(res, limit) })
}
pub fn set_wired_limit(limit: usize) -> Result<usize> {
usize::try_from_op(|res| unsafe { mlx_sys::mlx_set_wired_limit(res, limit) })
}