summaryrefslogtreecommitdiff
path: root/deimos/core/status.h
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2024-04-24 00:29:16 +0200
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2024-04-24 00:29:16 +0200
commit98c8fd5d39ee645922f071b6433308a813245500 (patch)
tree36804c19823b601608c3c44694f6db20aa8ce21a /deimos/core/status.h
parent85985c4408906b18eb451ca94edabaa0c3607817 (diff)
Add custom formatter & use it on Status
Diffstat (limited to 'deimos/core/status.h')
-rw-r--r--deimos/core/status.h10
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 = {})