summaryrefslogtreecommitdiff
path: root/deimos/core/os.h
diff options
context:
space:
mode:
Diffstat (limited to 'deimos/core/os.h')
-rw-r--r--deimos/core/os.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/deimos/core/os.h b/deimos/core/os.h
index 95b662b..88b1c55 100644
--- a/deimos/core/os.h
+++ b/deimos/core/os.h
@@ -2,6 +2,7 @@
#include "deimos/core/base.h"
#include "deimos/core/id_name.h"
+#include "deimos/core/io.h"
namespace deimos
{
@@ -21,7 +22,7 @@ public:
virtual ~OsConsoleApi() = default;
- virtual void Write(OsConsoleType, Span<const char> data) = 0;
+ virtual void Write(OsConsoleType, Span<const std::byte> data) = 0;
};
class OsApi
@@ -32,5 +33,21 @@ public:
OsConsoleApi* console{};
};
+class OsConsoleWriter : public IWriter
+{
+ OsConsoleApi* m_api;
+ OsConsoleType m_type;
+
+public:
+ constexpr OsConsoleWriter(OsConsoleApi* api, OsConsoleType type) :
+ m_api{api}, m_type{type}
+ {}
+
+ constexpr void Write(Span<const std::byte> data) override
+ {
+ m_api->Write(m_type, data);
+ }
+};
+
} // namespace deimos