macro_rules! ionc {
($e:expr) => { ... };
}Expand description
Macro to transform Ion C error code expressions into Result<(), IonCError>.
Higher-level facades over Ion C functions could map this to Result<T, IonCError>
or the like.
NB: ionc! implies unsafe code.
ยงUsage
let mut data = String::from("42");
let mut ion_reader: hREADER = ptr::null_mut();
let mut ion_type: ION_TYPE = ptr::null_mut();
ionc!(
ion_reader_open_buffer(
&mut ion_reader,
data.as_mut_ptr(),
data.len() as i32,
ptr::null_mut()
)
)?;
ionc!(ion_reader_next(ion_reader, &mut ion_type))?;
assert_eq!(ion_type as u32, tid_INT_INT);
let mut value = 0;
ionc!(ion_reader_read_int64(ion_reader, &mut value))?;
assert_eq!(value, 42);
ionc!(ion_reader_close(ion_reader))