use std::ffi::CString;
use std::mem::MaybeUninit;
fn main() {
let dwg_path = std::env::args().nth(1).expect("usage: smoke <in.dwg>");
let c_dwg_path = CString::new(dwg_path.as_str()).unwrap();
let mut dwg: libredwg_sys::Dwg_Data = unsafe { MaybeUninit::zeroed().assume_init() };
let error = unsafe { libredwg_sys::dwg_read_file(c_dwg_path.as_ptr(), &mut dwg) };
println!("dwg_read_file({dwg_path}) -> error={error}");
#[allow(clippy::unnecessary_cast)]
let critical = libredwg_sys::DWG_ERROR_DWG_ERR_CLASSESNOTFOUND as i32;
assert!(error < critical, "critical read error: {error}");
let n = unsafe { libredwg_sys::dwg_get_num_objects(&dwg) };
println!("num_objects={n}");
unsafe { libredwg_sys::dwg_free(&mut dwg) };
}