llam 0.1.4

Safe, Go-style Rust bindings for the LLAM runtime
use crate::error::{Error, Result};
use crate::sys;

pub fn dump_runtime_state_fd(fd: i32) {
    unsafe { sys::llam_dump_runtime_state(fd) };
}

pub fn write_stats_json_fd(fd: i32) -> Result<()> {
    let rc = unsafe { sys::llam_runtime_write_stats_json(fd) };
    if rc == 0 {
        Ok(())
    } else {
        Err(Error::last())
    }
}

#[cfg(unix)]
pub fn dump_runtime_state<W: std::os::fd::AsRawFd>(writer: &W) {
    dump_runtime_state_fd(writer.as_raw_fd());
}

#[cfg(unix)]
pub fn write_stats_json<W: std::os::fd::AsRawFd>(writer: &W) -> Result<()> {
    write_stats_json_fd(writer.as_raw_fd())
}