diff options
Diffstat (limited to 'deimos/core/status.h')
-rw-r--r-- | deimos/core/status.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/deimos/core/status.h b/deimos/core/status.h index bf34833..7350cc5 100644 --- a/deimos/core/status.h +++ b/deimos/core/status.h @@ -1,6 +1,7 @@ #pragma once
#include "deimos/core/base.h"
+#include "deimos/core/format.h"
namespace deimos
{
@@ -15,6 +16,8 @@ enum class StatusCode : uint32_t kInternal,
};
+StringView StatusCodeToString(StatusCode code);
+
class Status
{
uintptr_t m_rep;
@@ -79,6 +82,13 @@ public: if (IsInline()) { return (StatusCode)(m_rep >> 1U); }
return RepCode();
}
+
+ static void FormatStatus(IWriter* writer, const void* payload);
+
+ friend constexpr deimos::FormatArg DeimosMakeFormatArg(const Status& status)
+ {
+ return deimos::FormatArg(status, FormatStatus);
+ }
};
inline Status UnknownError(StringView message = {})
|