From 46944ec98688e962e94dcfcf426215f252bf2a87 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Fri, 3 Jan 2025 12:13:34 +0100 Subject: Start work on status --- asl/status.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'asl/status.cpp') diff --git a/asl/status.cpp b/asl/status.cpp index e69de29..ac0b29e 100644 --- a/asl/status.cpp +++ b/asl/status.cpp @@ -0,0 +1,27 @@ +#include "asl/status.hpp" +#include "asl/allocator.hpp" + +using Allocator = asl::DefaultAllocator; +static Allocator g_allocator{}; + +namespace +{ + +struct StatusInternal +{ + asl::string_view msg; + asl::status_code code; +}; + +} // anonymous namespace + +asl::status::status(status_code code, string_view msg) + : m_payload{alloc_new(g_allocator, msg, code)} +{} + +asl::status_code asl::status::code_internal() const +{ + ASL_ASSERT(m_payload && (bit_cast(m_payload) & 1) == 0); + return reinterpret_cast(m_payload)->code; +} + -- cgit