Macros for dealing with Options and Results where you shouldn't
ok_some:Result<Option<T>>->Torreturn Result<Option<T>>
match $value {
Ok(Some(value)) => value,
Ok(None) => return Ok(None),
Err(err) => return Err(err.into()),
}some_ok:Option<Result<T>>->Torreturn Option<Result<T>>
match $value {
Some(Ok(value)) => value,
Some(Err(err)) => return Some(Err(err.into())),
None => return None,
}option_ok:Result<Option<T>>->Option<T>orreturn Result<Option<T>>
match $value {
Ok(value) => value,
Err(err) => return Some(Err(err.into())),
}some_or_return:Option<T>->Torreturn default
match $value {
Some(value) => value,
None => return Default::default(),
}some_or_return_ok:Option<T>->Torreturn Result<default>
match $value {
Some(value) => value,
None => return Ok(Default::default()),
}some_or_return_err:Option<T>->Torreturn Result<default>
match $value {
Some(value) => value,
None => return Err(Default::default()),
}some_or_return_some:Option<T>->Torreturn Option<default>
match $value {
Some(value) => value,
None => return Some(Default::default()),
}some_or_continue:Option<T>->Torcontinue
match $value {
Some(value) => value,
None => continue,
}ok_or_return:Result<T>->Torreturn default
match $value {
Ok(value) => value,
Err(_) => return Default::default(),
}ok_or_return_ok:Result<T>->Torreturn Result<default>
match $value {
Ok(value) => value,
Err(_) => return Ok(Default::default()),
}ok_or_return_err:Result<T>->Torreturn Result<default>
match $value {
Ok(value) => value,
Err(_) => return Err(Default::default()),
}ok_or_return_some:Result<T>->Torreturn Option<default>
match $value {
Ok(value) => value,
Err(_) => return Some(Default::default()),
}ok_or_continue:Result<T>->Torcontinue
match $value {
Ok(value) => value,
Err(_) => continue,
}