4#include "MRPch/MRBindingMacros.h"
7#ifndef MR_USE_STD_EXPECTED
13#define MR_USE_STD_EXPECTED 0
16#if MR_USE_STD_EXPECTED
19#include <tl/expected.hpp>
22#ifdef MR_DOT_NET_BUILD
25template<
typename T,
typename E>
26class expected :
public tl::expected<T, E>
28 using tl::expected<T, E>::expected;
32inline auto unexpected( E &&e )
34 return tl::make_unexpected( std::forward<E>( e ) );
45#if MR_USE_STD_EXPECTED || defined(MR_DOT_NET_BUILD)
47template<
class T,
class E = std::
string>
53 return std::unexpected( std::forward<E>( e ) );
58template<
class T,
class E = std::
string>
64 return tl::make_unexpected( std::forward<E>( e ) );
72 return "Operation was canceled";
84 return "Unsupported file extension";
MR_BIND_IGNORE std::string stringUnsupportedFileExtension()
common message about unknown file extension
Definition MRExpected.h:82
MR_BIND_IGNORE auto unexpected(E &&e)
Definition MRExpected.h:62
tl::expected< T, E > Expected
Definition MRExpected.h:59
MR_BIND_IGNORE auto unexpectedUnsupportedFileExtension()
returns Expected error with stringUnsupportedFileExtension()
Definition MRExpected.h:88
MR_BIND_IGNORE auto unexpectedOperationCanceled()
returns Expected error with stringOperationCanceled()
Definition MRExpected.h:76
MR_BIND_IGNORE std::string stringOperationCanceled()
common message about user termination of an operation
Definition MRExpected.h:70