summaryrefslogtreecommitdiff
path: root/deimos/core/status.h
diff options
context:
space:
mode:
Diffstat (limited to 'deimos/core/status.h')
-rw-r--r--deimos/core/status.h12
1 files changed, 3 insertions, 9 deletions
diff --git a/deimos/core/status.h b/deimos/core/status.h
index f866182..bf34833 100644
--- a/deimos/core/status.h
+++ b/deimos/core/status.h
@@ -5,6 +5,7 @@
namespace deimos
{
+// NOLINTNEXTLINE(performance-enum-size)
enum class StatusCode : uint32_t
{
kOk = 0,
@@ -14,14 +15,6 @@ enum class StatusCode : uint32_t
kInternal,
};
-struct StatusRep
-{
- // @Todo Make this atomic
- int32_t ref_count{};
- StatusCode code{};
- StringView message;
-};
-
class Status
{
uintptr_t m_rep;
@@ -38,6 +31,7 @@ class Status
void Ref() const;
void Unref() const;
+ StatusCode RepCode() const;
public:
constexpr Status() : Status(StatusCode::kOk) {}
@@ -83,7 +77,7 @@ public:
StatusCode code() const
{
if (IsInline()) { return (StatusCode)(m_rep >> 1U); }
- return std::bit_cast<StatusRep*>(m_rep)->code;
+ return RepCode();
}
};