From 7971e71d1bd13e2b70fdc90e443f112e2378e445 Mon Sep 17 00:00:00 2001 From: vperus Date: Fri, 6 Mar 2026 18:41:41 +0200 Subject: [PATCH] Replace heap allocation with view --- src/core/logger.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/core/logger.cpp b/src/core/logger.cpp index cdc1afc6..0a85d6df 100644 --- a/src/core/logger.cpp +++ b/src/core/logger.cpp @@ -6,6 +6,9 @@ #include #include #include +#include +#include +#include namespace wowee { namespace core { @@ -42,15 +45,16 @@ void Logger::ensureFile() { } } if (const char* level = std::getenv("WOWEE_LOG_LEVEL")) { - std::string v(level); - std::transform(v.begin(), v.end(), v.begin(), [](unsigned char c) { - return static_cast(std::tolower(c)); - }); - if (v == "debug") setLogLevel(LogLevel::DEBUG); - else if (v == "info") setLogLevel(LogLevel::INFO); - else if (v == "warn" || v == "warning") setLogLevel(LogLevel::WARNING); - else if (v == "error") setLogLevel(kLogLevelError); - else if (v == "fatal") setLogLevel(LogLevel::FATAL); + auto toLower = [] (unsigned char c) { return std::tolower(c); }; + using namespace std::literals; + + auto v = std::string_view{level} | std::views::transform(toLower); + if (std::ranges::equal(v, "debug"sv)) setLogLevel(LogLevel::DEBUG); + else if (std::ranges::equal(v, "info"sv)) setLogLevel(LogLevel::INFO); + else if (std::ranges::equal(v, "warn"sv) || std::ranges::equal(v, "warning"sv)) + setLogLevel(LogLevel::WARNING); + else if (std::ranges::equal(v, "error"sv)) setLogLevel(kLogLevelError); + else if (std::ranges::equal(v, "fatal"sv)) setLogLevel(LogLevel::FATAL); } std::error_code ec; std::filesystem::create_directories("logs", ec);