5 #include <nx/sdk/i_string.h> 10 enum class ErrorCode: int
15 internalError = -1000,
16 invalidParams = -1001,
27 m_errorCode(errorCode), m_errorMessage(errorMessage)
33 return m_errorCode == ErrorCode::noError && m_errorMessage ==
nullptr;
36 ErrorCode errorCode()
const {
return m_errorCode; }
37 const IString* errorMessage()
const {
return m_errorMessage; }
43 ErrorCode m_errorCode;
47 template<
typename Value>
51 Result(): m_error(ErrorCode::noError,
nullptr) {}
53 Result(Value value): m_error(ErrorCode::noError,
nullptr), m_value(std::move(value)) {}
59 m_error = std::move(error);
64 Result& operator=(Value value)
66 m_error =
Error{ErrorCode::noError,
nullptr};
71 bool isOk()
const {
return m_error.isOk(); }
73 const Error& error()
const {
return m_error; }
74 Value value()
const {
return m_value; }
85 Result(): m_error(ErrorCode::noError,
nullptr) {}
91 m_error = std::move(error);
95 bool isOk()
const {
return m_error.isOk(); }
97 const Error& error()
const {
return m_error; }