utils: Improve option/result types

And add the beginnings of unit tests.
This commit is contained in:
Dirk-Jan C. Binnema
2020-11-26 09:26:28 +02:00
parent 4b6d9a0ce8
commit d0e357c150
5 changed files with 82 additions and 2 deletions

View File

@ -29,10 +29,19 @@
namespace Mu {
/**
* A Result is _either_ some value of type T, _or_ an error.
*
*/
template <typename T> using Result = tl::expected<T, Error>;
template <typename T> typename Result<T>::expected_type
Ok(T&& t) {
return Result<T>::expected(std::move(t));
}
template <typename T> typename Result<T>::unexpected_type
Err(Error&& err) {
return Result<T>::unexpected(std::move(err));
}
} // namespace Mu