#include "kapi/cio.hpp" #include #include #include namespace kapi::cio { namespace { struct null_device final : public output_device { null_device static instance; auto write(output_stream, std::string_view) -> void override {} }; constinit null_device null_device::instance; } // namespace constinit auto static active_device = static_cast(&null_device::instance); auto set_output_device(output_device & device) -> std::optional { if (&device == active_device) { return {}; } return std::exchange(active_device, &device); } auto write(output_stream stream, std::string_view text) -> void { active_device->write(stream, text); } } // namespace kapi::cio