[ox/std] Add Result::orVal
This commit is contained in:
parent
319fbb2600
commit
45ec39f77b
48
deps/ox/src/ox/std/error.hpp
vendored
48
deps/ox/src/ox/std/error.hpp
vendored
@ -264,6 +264,54 @@ struct [[nodiscard]] Result {
|
|||||||
return f(std::move(value));
|
return f(std::move(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns parameter alt if Result contains an error.
|
||||||
|
* @param alt
|
||||||
|
* @return value of Result or alt
|
||||||
|
*/
|
||||||
|
constexpr T orVal(T &&alt) & noexcept {
|
||||||
|
if (error) {
|
||||||
|
return std::move(alt);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns parameter alt if Result contains an error.
|
||||||
|
* @param alt
|
||||||
|
* @return value of Result or alt
|
||||||
|
*/
|
||||||
|
constexpr T orVal(T &&alt) && noexcept {
|
||||||
|
if (error) {
|
||||||
|
return std::move(alt);
|
||||||
|
}
|
||||||
|
return std::move(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns parameter alt if Result contains an error.
|
||||||
|
* @param alt
|
||||||
|
* @return value of Result or alt
|
||||||
|
*/
|
||||||
|
constexpr T orVal(T const&alt) & noexcept {
|
||||||
|
if (error) {
|
||||||
|
return alt;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns parameter alt if Result contains an error.
|
||||||
|
* @param alt
|
||||||
|
* @return value of Result or alt
|
||||||
|
*/
|
||||||
|
constexpr T orVal(T const&alt) && noexcept {
|
||||||
|
if (error) {
|
||||||
|
return alt;
|
||||||
|
}
|
||||||
|
return std::move(value);
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
Loading…
Reference in New Issue
Block a user