1 unstable release
Uses new Rust 2024
| 0.1.0 | Oct 9, 2025 |
|---|
#2522 in Rust patterns
7KB
119 lines
return-ok
Macros for dealing with Options and Results where you shouldn't
Macros
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,
}