aboutsummaryrefslogtreecommitdiff
path: root/kapi/src/cio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kapi/src/cio.cpp')
-rw-r--r--kapi/src/cio.cpp57
1 files changed, 0 insertions, 57 deletions
diff --git a/kapi/src/cio.cpp b/kapi/src/cio.cpp
deleted file mode 100644
index 66493b6..0000000
--- a/kapi/src/cio.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "kapi/cio.hpp"
-
-#include <optional>
-#include <string_view>
-#include <utility>
-
-namespace teachos::cio
-{
- namespace
- {
- struct null_device final : public output_device
- {
- null_device static instance;
-
- auto write(std::string_view) -> void override {}
- auto writeln(std::string_view) -> void override {}
-
- auto write_error(std::string_view) -> void override {}
- auto writeln_error(std::string_view) -> void override {}
- };
-
- constinit null_device null_device::instance;
- } // namespace
-
- // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
- constinit auto active_device = static_cast<output_device *>(&null_device::instance);
-
- auto set_output_device(output_device & device) -> std::optional<output_device *>
- {
- if (&device == active_device)
- {
- return {};
- }
- return std::exchange(active_device, &device);
- }
-
- auto print(std::string_view text) -> void
- {
- active_device->write(text);
- }
-
- auto println(std::string_view text) -> void
- {
- active_device->writeln(text);
- }
-
- auto print_error(std::string_view text) -> void
- {
- active_device->write_error(text);
- }
-
- auto println_error(std::string_view text) -> void
- {
- active_device->writeln_error(text);
- }
-
-} // namespace teachos::cio \ No newline at end of file