add unwrap_or to result

This commit is contained in:
ToruNiina
2018-12-13 01:28:55 +09:00
parent 2080b30110
commit 901c299c40

View File

@@ -394,6 +394,25 @@ struct result
return std::move(this->succ.value);
}
template<typename U>
value_type& unwrap_or(U& opt) &
{
if(is_err()) {return opt;}
return this->succ.value;
}
template<typename U>
value_type const& unwrap_or(U const& opt) const&
{
if(is_err()) {return opt;}
return this->succ.value;
}
template<typename U>
value_type&& unwrap_or(U&& opt) &&
{
if(is_err()) {return std::move(opt);}
return std::move(this->succ.value);
}
error_type& unwrap_err() &
{
if(is_ok()) {throw std::runtime_error("toml::result: bad unwrap_err");}