diff options
author | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2024-04-24 00:29:16 +0200 |
---|---|---|
committer | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2024-04-24 00:29:16 +0200 |
commit | 98c8fd5d39ee645922f071b6433308a813245500 (patch) | |
tree | 36804c19823b601608c3c44694f6db20aa8ce21a /deimos/core/status.h | |
parent | 85985c4408906b18eb451ca94edabaa0c3607817 (diff) |
Add custom formatter & use it on Status
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 = {})
|