#[macro_export]
macro_rules! myok {
($a:expr,None) => {
match $a{
Ok(a)=>a,
Err(e)=>{
return None ;
},
}
};
($a:expr,?) => {
match $a{
Ok(a)=>a,
Err(e)=>{
return Err(MyError::new(format!("{}",e))) ;
},
}
};
($a:expr,??) => {
match $a{
Ok(a)=>a,
Err(e)=>{
return Err(MyError::new(format!("{:?}",e))) ;
},
}
};
($a:expr,) => {
match $a{
Ok(a)=>a,
Err(_e)=>{
return ;
},
}
};
($a:expr,$b:expr) => {
match $a{
Ok(a)=>a,
Err(e)=>{
return Err($b(e));
},
}
};
($a:expr) => {
match $a{
Ok(a)=>a,
Err(e)=>{
return Err(e);
},
}
};
}
#[macro_export]
macro_rules! myok_or {
($a:expr ,$b:expr) => {
match $a{
Ok(a)=>a,
Err(e)=>$b(e),
}
};
}
#[macro_export]
macro_rules! myoks {
($last:expr;) => ({
myok!($last)
});
($first:expr; $($rest:expr;)+)=> ({
myok!($first);
myoks!($($rest;)+)
});
}