[][src]Macro abi_stable::rtry

macro_rules! rtry {
    ($expr:expr) => { ... };
}

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() ),
    ))
}