#[doc(hidden)]
macro_rules! try_dpi {
($code:expr, $ret:expr, $err:expr) => {{
if unsafe { $code } == ::odpi::constants::DPI_SUCCESS {
$ret
} else {
Err($err.into())
}
}};
}
#[doc(hidden)]
#[cfg(feature = "trace")]
macro_rules! logperf {
($func:expr, $logger:expr, $msg:expr) => {{
let timer = ::std::time::Instant::now();
let res = $func;
let elapsed = timer.elapsed();
let elapsed_f64 = elapsed.as_secs() as f64 + elapsed.subsec_nanos() as f64 * 1e-9;
try_trace!($logger, "{}: {:.9}s", $msg, elapsed_f64);
res
}};
}