ROSE 0.11.145.147
|
Result containing a value or an error.
#include <Sawyer/Result.h>
Public Types | |
using | OkValue = T |
using | ErrorValue = E |
using | OkType = Ok< T > |
using | ErrorType = Error< E > |
Public Member Functions | |
template<class U = T> | |
Result (const Ok< U > &ok) | |
template<class F = E> | |
Result (const Error< F > &error) | |
template<class U = T> | |
Result & | operator= (const Ok< U > &ok) |
Assign an Ok value to this result. | |
template<class F = E> | |
Result & | operator= (const Error< F > &error) |
Assign an Error value to this result. | |
template<class U = T> | |
bool | operator== (const Ok< U > &ok) const |
Test whether this result has the specified Ok value. | |
template<class U = T> | |
bool | operator!= (const Ok< U > &ok) const |
Test whether this result does not have the specified Ok value. | |
template<class F = E> | |
bool | operator== (const Error< F > &error) const |
Test whether this result has the specified Error value. | |
template<class F = E> | |
bool | operator!= (const Error< F > &error) const |
Test whether this result does not have the specified Error value. | |
template<class U , class F > | |
bool | operator== (const Result< U, F > &other) const |
Test whether this result is equal to the other result. | |
template<class U , class F > | |
bool | operator!= (const Result< U, F > &other) const |
Test whether this result is unequal to the other result. | |
bool | isError () const |
Returns true if the result is an error. | |
const Sawyer::Optional< T > | ok () const |
Convert to Optional<T>. | |
const Sawyer::Optional< E > | error () const |
Convert to Optional<E>. | |
const T & | expect (const std::string &mesg) const |
Returns the success value or throws an exception. | |
const T * | operator-> () const |
Returns a pointer to the success value, or thows an exception. | |
const T | orElse (const T &dflt) const |
Returns the contained Ok value or a provided default. | |
template<class Fn > | |
std::enable_if< is_invocable< Fn, ErrorValue >::value, constResult >::type | orElse (Fn fn) const |
Returns the contained Ok value, or calls a function. | |
template<class F > | |
const Result< T, F > | orElse (const Result< T, F > &other) const |
Returns this value or the other result. | |
const T & | orDefault () const |
Returns the okay value or a default constructed value. | |
template<class Exception = E> | |
const T & | orThrow () const |
Returns the value or throws an exception. | |
template<class Exception = E> | |
const T & | orThrow (const Exception &e) const |
Returns the value or throws an exception constructed from the specified value. | |
template<class Fn > | |
std::enable_if< is_invocable< Fn, OkValue >::value, constResult >::type | andThen (Fn fn) const |
Returns the contained Error value, or calls a function. | |
template<class U > | |
const Result< U, E > | andThen (const Result< U, E > &other) const |
Returns this error or the other result. | |
const E & | expectError (const std::string &mesg) const |
Returns the error value or throws an exception. | |
const E & | unwrapError () const |
Returns the error value or throws an exception. | |
template<class U > | |
bool | contains (const U &value) const |
Returns true if this result contains the specified okay value. | |
template<class F > | |
bool | containsError (const F &error) const |
Returns true if this result contains the specified error value. | |
template<typename F > | |
auto | fmap (F &&f) -> Result< decltype(f(unwrap())), E > |
Conditionally apply a functor f to the contents of a Result. | |
bool | isOk () const |
Returns true if the result is okay. | |
operator bool () const | |
Returns true if the result is okay. | |
const T & | unwrap () const |
Returns the success value or throws an exception. | |
const T & | operator* () const |
Returns the success value or throws an exception. | |
template<class U > | |
const Result & | assignTo (U &out) const |
Conditionally save a value. | |
template<class U > | |
Result & | assignTo (U &out) const |
Conditionally save a value. | |
using Sawyer::Result< T, E >::OkValue = T |
using Sawyer::Result< T, E >::ErrorValue = E |
using Sawyer::Result< T, E >::OkType = Ok<T> |
using Sawyer::Result< T, E >::ErrorType = Error<E> |
|
inline |
|
inline |
|
inline |
Assign an Ok value to this result.
Definition at line 398 of file Result.h.
References Sawyer::Result< T, E >::ok().
|
inline |
Assign an Error value to this result.
Definition at line 405 of file Result.h.
References Sawyer::Result< T, E >::error().
|
inline |
Test whether this result has the specified Ok value.
Definition at line 412 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::ok().
|
inline |
Test whether this result does not have the specified Ok value.
Definition at line 418 of file Result.h.
References Sawyer::Result< T, E >::ok().
|
inline |
Test whether this result has the specified Error value.
Definition at line 424 of file Result.h.
References Sawyer::Result< T, E >::error(), and Sawyer::Result< T, E >::isError().
|
inline |
Test whether this result does not have the specified Error value.
Definition at line 430 of file Result.h.
References Sawyer::Result< T, E >::error().
|
inline |
Test whether this result is equal to the other result.
Definition at line 436 of file Result.h.
References Sawyer::Result< T, E >::error(), Sawyer::Result< T, E >::isError(), Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::ok().
|
inline |
|
inline |
Returns true if the result is okay.
Definition at line 450 of file Result.h.
Referenced by Sawyer::Result< T, E >::andThen(), Sawyer::Result< T, E >::andThen(), Sawyer::Result< T, E >::assignTo(), Sawyer::Result< T, E >::contains(), Sawyer::Result< T, E >::containsError(), Sawyer::Result< T, E >::error(), Sawyer::Result< T, E >::expect(), Sawyer::Result< T, E >::expectError(), Sawyer::Result< T, E >::fmap(), Sawyer::Result< T, E >::isError(), Sawyer::Result< T, E >::ok(), Sawyer::Result< T, E >::operator bool(), Sawyer::Result< T, E >::operator==(), Sawyer::Result< T, E >::operator==(), Sawyer::Result< T, E >::orDefault(), Sawyer::Result< T, E >::orElse(), Sawyer::Result< T, E >::orElse(), Sawyer::Result< T, E >::orElse(), Sawyer::Result< T, E >::orThrow(), and Sawyer::Result< T, E >::orThrow().
|
inlineexplicit |
Returns true if the result is okay.
Definition at line 453 of file Result.h.
References Sawyer::Result< T, E >::isOk().
|
inline |
Returns true if the result is an error.
Definition at line 459 of file Result.h.
References Sawyer::Result< T, E >::isOk().
Referenced by Sawyer::Result< T, E >::operator==(), and Sawyer::Result< T, E >::operator==().
|
inline |
Convert to Optional<T>.
If this result is okay, then return the result, otherwise return nothing.
Definition at line 466 of file Result.h.
References Sawyer::Result< T, E >::isOk().
Referenced by Sawyer::Result< T, E >::andThen(), Sawyer::Result< T, E >::operator!=(), Sawyer::Result< T, E >::operator=(), Sawyer::Result< T, E >::operator==(), and Sawyer::Result< T, E >::operator==().
|
inline |
Convert to Optional<E>.
If this result is an error, then return the error, otherwise return nothing.
Definition at line 477 of file Result.h.
References Sawyer::Result< T, E >::isOk().
Referenced by Sawyer::Result< T, E >::containsError(), Sawyer::Result< T, E >::operator!=(), Sawyer::Result< T, E >::operator=(), Sawyer::Result< T, E >::operator==(), Sawyer::Result< T, E >::operator==(), Sawyer::Result< T, E >::orElse(), and Sawyer::Result< T, E >::orThrow().
|
inline |
Returns the success value or throws an exception.
If this result is okay, then returns its value, otherwise throws an std::runtime_error
with the specified string.
Definition at line 488 of file Result.h.
References Sawyer::Result< T, E >::isOk().
Referenced by Sawyer::Result< T, E >::unwrap().
|
inline |
Returns the success value or throws an exception.
If this result is okay, then returns its value, otherwise throws an std::runtime_error
.
Definition at line 501 of file Result.h.
References Sawyer::Result< T, E >::expect().
Referenced by Sawyer::Result< T, E >::assignTo(), Sawyer::Result< T, E >::contains(), Sawyer::Result< T, E >::fmap(), Sawyer::Result< T, E >::operator*(), Sawyer::Result< T, E >::operator->(), Sawyer::Result< T, E >::orDefault(), Sawyer::Result< T, E >::orElse(), Sawyer::Result< T, E >::orThrow(), and Sawyer::Result< T, E >::orThrow().
|
inline |
Returns the success value or throws an exception.
If this result is okay, then returns its value, otherwise throws an std::runtime_error
.
Definition at line 504 of file Result.h.
References Sawyer::Result< T, E >::unwrap().
|
inline |
Returns a pointer to the success value, or thows an exception.
If this result is okay, then returns a pointer to its value, otherwise throws an std::runtime_error
.
Definition at line 512 of file Result.h.
References Sawyer::Result< T, E >::unwrap().
|
inline |
Returns the contained Ok value or a provided default.
Definition at line 517 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Returns the contained Ok value, or calls a function.
If this result is okay, then returns this result, otherwise calls the specified function, fn
, with this result's Error value and returns the function's result.
Definition at line 527 of file Result.h.
References Sawyer::Result< T, E >::error(), and Sawyer::Result< T, E >::isOk().
|
inline |
Returns this value or the other result.
If this result is okay then return it, otherwise returns the other
result.
Definition at line 539 of file Result.h.
References Sawyer::Result< T, E >::isOk().
|
inline |
Returns the okay value or a default constructed value.
Definition at line 548 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Returns the value or throws an exception.
If the result is okay, then its value is returned, otherwise either the error is thrown or it is used to construct the specified Exception
which is then thrown.
Definition at line 558 of file Result.h.
References Sawyer::Result< T, E >::error(), Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Returns the value or throws an exception constructed from the specified value.
Definition at line 568 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Returns the contained Error value, or calls a function.
If this result is an error, then it's returned. Otherwise the okay value is passed to the specified function and that function's return value is returned.
Definition at line 582 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::ok().
|
inline |
Returns this error or the other result.
If this result is okay, then returns other
. Otherwise returns the error value of this result.
Definition at line 594 of file Result.h.
References Sawyer::Result< T, E >::isOk().
|
inline |
Returns the error value or throws an exception.
If this result is an error, then returns the error, otherwise throws an std::runtime_error
with the specified string.
Definition at line 605 of file Result.h.
References Sawyer::Result< T, E >::isOk().
Referenced by Sawyer::Result< T, E >::unwrapError().
|
inline |
Returns the error value or throws an exception.
If this result is an error, then returns the error, otherwise throws an std::runtime_error
.
Definition at line 616 of file Result.h.
References Sawyer::Result< T, E >::expectError().
Referenced by Sawyer::Result< T, E >::containsError(), and Sawyer::Result< T, E >::fmap().
|
inline |
Returns true if this result contains the specified okay value.
Definition at line 622 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Returns true if this result contains the specified error value.
Definition at line 628 of file Result.h.
References Sawyer::Result< T, E >::error(), Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrapError().
|
inline |
Conditionally save a value.
If this result has a value, then assign it to the argument. Returns the result.
Definition at line 672 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Conditionally save a value.
If this result has a value, then assign it to the argument. Returns the result.
Definition at line 679 of file Result.h.
References Sawyer::Result< T, E >::isOk(), and Sawyer::Result< T, E >::unwrap().
|
inline |
Conditionally apply a functor f
to the contents of a Result.
If this object has a value then fmap builds a new Result using f
to construct the value. If it does not have a value, the new Result keeps the error of the input.
Definition at line 693 of file Result.h.
References Sawyer::Result< T, E >::isOk(), Sawyer::makeError(), Sawyer::makeOk(), Sawyer::Result< T, E >::unwrap(), and Sawyer::Result< T, E >::unwrapError().