Macro ion_c_sys::ionc [−][src]
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))