Macro abi_stable::rtry [−][src]
macro_rules! rtry {
($expr : expr) => { ... };
}
Expand description
Equivalent to ?
for RResult
.
Example
Defining an extern function that returns a result.
use abi_stable::{
std_types::{RResult,ROk,RErr,RBoxError,RStr,Tuple3},
traits::IntoReprC,
rtry,
sabi_extern_fn,
};
#[sabi_extern_fn]
fn parse_tuple(s:RStr<'_>)->RResult<Tuple3<u32,u32,u32>,RBoxError>{
let mut iter=s.split(',').map(|x|x.trim());
ROk(Tuple3(
rtry!( iter.next().unwrap_or("").parse().map_err(RBoxError::new).into_c() ),
rtry!( iter.next().unwrap_or("").parse().map_err(RBoxError::new).into_c() ),
rtry!( iter.next().unwrap_or("").parse().map_err(RBoxError::new).into_c() ),
))
}