Result.h header
#include <ew/core/Result.h>
Namespace ew::core
Result class
class ew::core::Result
The outcome of an operation that can fail recoverably: either a value of type T or an Error. This is how the codebase reports recoverable failures (file parse, IO, validation); exceptions are reserved for programmer errors (CODING_STANDARDS section 6.5). Check isOk() before calling value().
Members
ew::core::Result< T >::Result(T value)
Constructs a successful result holding value (implicit for ergonomic returns).
ew::core::Result< T >::Result(Error error)
Constructs a failed result holding error (implicit for ergonomic returns).
bool ew::core::Result< T >::isOk() const
Returns true if the operation succeeded (a value is present).
bool ew::core::Result< T >::isError() const
Returns true if the operation failed (an error is present).
T & ew::core::Result< T >::value() &
Returns the value for inspection or in-place modification. Precondition: isOk().
const T & ew::core::Result< T >::value() const &
Returns the value. Precondition: isOk().
T && ew::core::Result< T >::value() &&
Extracts the value by move, for move-only types such as std::unique_ptr; the result is left holding a moved-from value. Precondition: isOk().
const Error & ew::core::Result< T >::error() const
Returns the error. Precondition: isError().
Result< void > class
class ew::core::Result< void >
The outcome of a value-less operation that can fail recoverably: success or an Error.
Members
ew::core::Result< void >::Result()=default
Constructs a successful (empty) result.
ew::core::Result< void >::Result(Error error)
Constructs a failed result holding error (implicit for ergonomic returns).
bool ew::core::Result< void >::isOk() const
Returns true if the operation succeeded.
bool ew::core::Result< void >::isError() const
Returns true if the operation failed.
const Error & ew::core::Result< void >::error() const
Returns the error. Precondition: isError().
void & ew::core::Result< void >::value() &
Returns the value for inspection or in-place modification. Precondition: isOk().