11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
16PROMEKI_NAMESPACE_BEGIN
33template <
typename T>
using Result = Pair<T, Error>;
41template <
typename T> Result<T> makeResult(T value) {
42 return Result<T>(std::move(value), Error::Ok);
51template <
typename T> Result<T> makeError(Error err) {
52 return Result<T>(T{}, std::move(err));
61template <
typename T>
const T &value(
const Result<T> &r) {
71template <
typename T>
const Error &error(
const Result<T> &r) {
81template <
typename T>
bool isOk(
const Result<T> &r) {
82 return r.second().isOk();
91template <
typename T>
bool isError(
const Result<T> &r) {
92 return r.second().isError();