ic4 0.0.2

A Rust bindings for IC Imaging Control 4 SDK from The Imaging Source. (Safe Part)
#![allow(clippy::redundant_closure)]

use crate::*;

#[doc = " @brief Contains retrievable version descriptions"]
pub type VersionInfoFlags = ic4_sys::IC4_VERSION_INFO_FLAGS;

    #[doc = " @brief Retrieve version information description string\n\n @param[out] str         Pointer to a character array to receive an error message.\n @param[in,out] size     Size of str buffer\n @param[in] flags        What version information to retrieve\n\n @return \\c true on success"]
pub fn get_version_info(flags: VersionInfoFlags) -> self::Result<CString> {
    let mut message_length = 10 * 1024;
    let mut message_vec = vec![0; 10 * 1024];
    unsafe {
        ic4_sys::ic4_get_version_info(
            message_vec.as_mut_ptr() as *mut c_char,
            ptr_from_mut(&mut message_length),
            flags,
        )
        .then_some(())
        .ok_or_else(|| self::get_last_error())?;
        message_vec.resize(message_length - 1, 0);
        Ok(CString::from_vec_unchecked(message_vec))
    }
}