From 1b6c4a4c4907bd7fbe5679d5c37d0f4f29b00e3b Mon Sep 17 00:00:00 2001 From: visuve Date: Fri, 5 Apr 2024 21:20:38 +0300 Subject: [PATCH] Move stuff from Logger.hpp to Logger.cpp - I do not need the Foreground or Background functions elsewhere --- HackLib/Logger.cpp | 76 +++++++++++++++++++++++++++++++++++++++++++++- HackLib/Logger.hpp | 72 ++----------------------------------------- 2 files changed, 77 insertions(+), 71 deletions(-) diff --git a/HackLib/Logger.cpp b/HackLib/Logger.cpp index 48613bc..7bcb893 100644 --- a/HackLib/Logger.cpp +++ b/HackLib/Logger.cpp @@ -1,6 +1,60 @@ #include "Logger.hpp" -std::mutex LogMutex; +namespace +{ + constexpr std::string_view Foreground(Logger::Color c) + { + switch (c) + { + case Logger::Color::Black: return "\033[30m"; + case Logger::Color::Red: return "\033[31m"; + case Logger::Color::Green: return "\033[32m"; + case Logger::Color::Yellow: return "\033[33m"; + case Logger::Color::Blue: return "\033[34m"; + case Logger::Color::Magenta: return "\033[35m"; + case Logger::Color::Cyan: return "\033[36m"; + case Logger::Color::LightGray: return "\033[37m"; + case Logger::Color::DarkGray: return "\033[90m"; + case Logger::Color::LightRed: return "\033[91m"; + case Logger::Color::LightGreen: return "\033[92m"; + case Logger::Color::LightYellow: return "\033[93m"; + case Logger::Color::LightBlue: return "\033[94m"; + case Logger::Color::LightMagenta: return "\033[95m"; + case Logger::Color::LightCyan: return "\033[96m"; + case Logger::Color::White: return "\033[97m"; + case Logger::Color::Default: return "\033[0m"; + } + + throw ArgumentException("Unknown foreground color"); + } + + constexpr std::string_view Background(Logger::Color c) + { + switch (c) + { + case Logger::Color::Black: return "\033[40m"; + case Logger::Color::Red: return "\033[41m"; + case Logger::Color::Green: return "\033[42m"; + case Logger::Color::Yellow: return "\033[43m"; + case Logger::Color::Blue: return "\033[44m"; + case Logger::Color::Magenta: return "\033[45m"; + case Logger::Color::Cyan: return "\033[46m"; + case Logger::Color::LightGray: return "\033[47m"; + case Logger::Color::DarkGray: return "\033[100m"; + case Logger::Color::LightRed: return "\033[101m"; + case Logger::Color::LightGreen: return "\033[102m"; + case Logger::Color::LightYellow: return "\033[103m"; + case Logger::Color::LightBlue: return "\033[104m"; + case Logger::Color::LightMagenta: return "\033[105m"; + case Logger::Color::LightCyan: return "\033[106m"; + case Logger::Color::White: return "\033[107m"; + } + + throw ArgumentException("Unknown background color"); + } + + std::mutex LogMutex; +} std::string Prefix(const std::source_location& location) { @@ -50,6 +104,26 @@ Logger::~Logger() } } +Logger& Logger::operator << (Color c) +{ + if (_stream && _isConsoleOutput) + { + _modifiers.emplace_back(Foreground(c), Foreground(_color)); + } + + return *this; +} + +Logger& Logger::operator << (Modifier m) +{ + if (_stream && m == Logger::Modifier::Quoted) + { + _modifiers.emplace_back("\"", "\""); + } + + return *this; +} + DurationLogger::DurationLogger(std::ostream& stream, const std::source_location& location, const std::string& message) : Logger(stream, location, Logger::Color::Magenta), _start(std::chrono::high_resolution_clock::now()) diff --git a/HackLib/Logger.hpp b/HackLib/Logger.hpp index 444d4e6..642f4e0 100644 --- a/HackLib/Logger.hpp +++ b/HackLib/Logger.hpp @@ -38,25 +38,8 @@ class Logger NonCopyable(Logger); - Logger& operator << (Color c) - { - if (_stream && _isConsoleOutput) - { - _modifiers.emplace_back(Foreground(c), Foreground(_color)); - } - - return *this; - } - - Logger& operator << (Modifier m) - { - if (_stream && m == Logger::Modifier::Quoted) - { - _modifiers.emplace_back("\"", "\""); - } - - return *this; - } + Logger& operator << (Color c); + Logger& operator << (Modifier m); Logger& operator << (auto x) { @@ -82,57 +65,6 @@ class Logger return *this; } - static constexpr std::string_view Foreground(Color c) - { - switch (c) - { - case Color::Black: return "\033[30m"; - case Color::Red: return "\033[31m"; - case Color::Green: return "\033[32m"; - case Color::Yellow: return "\033[33m"; - case Color::Blue: return "\033[34m"; - case Color::Magenta: return "\033[35m"; - case Color::Cyan: return "\033[36m"; - case Color::LightGray: return "\033[37m"; - case Color::DarkGray: return "\033[90m"; - case Color::LightRed: return "\033[91m"; - case Color::LightGreen: return "\033[92m"; - case Color::LightYellow: return "\033[93m"; - case Color::LightBlue: return "\033[94m"; - case Color::LightMagenta: return "\033[95m"; - case Color::LightCyan: return "\033[96m"; - case Color::White: return "\033[97m"; - case Color::Default: return "\033[0m"; - } - - throw ArgumentException("Unknown foreground color"); - } - - static constexpr std::string_view Background(Color c) - { - switch (c) - { - case Color::Black: return "\033[40m"; - case Color::Red: return "\033[41m"; - case Color::Green: return "\033[42m"; - case Color::Yellow: return "\033[43m"; - case Color::Blue: return "\033[44m"; - case Color::Magenta: return "\033[45m"; - case Color::Cyan: return "\033[46m"; - case Color::LightGray: return "\033[47m"; - case Color::DarkGray: return "\033[100m"; - case Color::LightRed: return "\033[101m"; - case Color::LightGreen: return "\033[102m"; - case Color::LightYellow: return "\033[103m"; - case Color::LightBlue: return "\033[104m"; - case Color::LightMagenta: return "\033[105m"; - case Color::LightCyan: return "\033[106m"; - case Color::White: return "\033[107m"; - } - - throw ArgumentException("Unknown background color"); - } - template constexpr void Plain(std::string_view name, T value) {