mirror of
https://github.com/geode-sdk/geode.git
synced 2024-11-26 17:36:05 -05:00
Update Result.hpp
This commit is contained in:
parent
7cc5fb1405
commit
b21cb64fdf
1 changed files with 15 additions and 19 deletions
|
@ -9,8 +9,6 @@
|
|||
#include <type_traits>
|
||||
#include <variant>
|
||||
|
||||
// clang-format on
|
||||
|
||||
namespace geode {
|
||||
namespace impl {
|
||||
using DefaultValue = std::monostate;
|
||||
|
@ -115,47 +113,47 @@ namespace geode {
|
|||
constexpr Result(impl::Success<T2>&& s) : Base(std::move(s.value())) {}
|
||||
|
||||
[[nodiscard]] constexpr explicit operator bool() const noexcept {
|
||||
return this->operator bool();
|
||||
return this->Base::operator bool();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr bool isOk() const noexcept {
|
||||
return this->has_value();
|
||||
return this->Base::has_value();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr bool isErr() const noexcept {
|
||||
return this->has_error();
|
||||
return this->Base::has_error();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrap() & {
|
||||
return this->value();
|
||||
return this->Base::value();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrap() const& {
|
||||
return this->value();
|
||||
return this->Base::value();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrap() && {
|
||||
return this->value();
|
||||
return this->Base::value();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrap() const&& {
|
||||
return this->value();
|
||||
return this->Base::value();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrapErr() & {
|
||||
return this->error();
|
||||
return this->Base::error();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrapErr() const& {
|
||||
return this->error();
|
||||
return this->Base::error();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrapErr() && {
|
||||
return this->error();
|
||||
return this->Base::error();
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr decltype(auto) unwrapErr() const&& {
|
||||
return this->error();
|
||||
return this->Base::error();
|
||||
}
|
||||
|
||||
template <class... Args>
|
||||
|
@ -174,22 +172,22 @@ namespace geode {
|
|||
|
||||
template <class U>
|
||||
[[nodiscard]] constexpr decltype(auto) unwrapOr(U&& val) && {
|
||||
return this->value_or(std::forward<U>(val));
|
||||
return this->Base::value_or(std::forward<U>(val));
|
||||
}
|
||||
|
||||
template <class U>
|
||||
[[nodiscard]] constexpr decltype(auto) unwrapOr(U&& val) const& {
|
||||
return this->value_or(std::forward<U>(val));
|
||||
return this->Base::value_or(std::forward<U>(val));
|
||||
}
|
||||
|
||||
template <class U>
|
||||
[[nodiscard]] constexpr decltype(auto) errorOr(U&& val) && {
|
||||
return this->error_or(std::forward<U>(val));
|
||||
return this->Base::error_or(std::forward<U>(val));
|
||||
}
|
||||
|
||||
template <class U>
|
||||
[[nodiscard]] constexpr decltype(auto) errorOr(U&& val) const& {
|
||||
return this->error_or(std::forward<U>(val));
|
||||
return this->Base::error_or(std::forward<U>(val));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -230,5 +228,3 @@ namespace geode {
|
|||
} \
|
||||
}
|
||||
}
|
||||
|
||||
// clang-format on
|
||||
|
|
Loading…
Reference in a new issue