#pragma once #include #include #include "Colors.hpp" template std::string statusString(const std::string_view emoji, const std::string_view color, const std::string_view fmt, Args&&... args) { std::string ret = std::format("{}{}{} ", color, emoji, Colors::RESET); ret += std::vformat(fmt, std::make_format_args(args...)); return ret; } template std::string successString(const std::string_view fmt, Args&&... args) { return statusString("✔", Colors::GREEN, fmt, args...); } template std::string failureString(const std::string_view fmt, Args&&... args) { return statusString("✖", Colors::RED, fmt, args...); } template std::string verboseString(const std::string_view fmt, Args&&... args) { return statusString("[v]", Colors::BLUE, fmt, args...); } template std::string infoString(const std::string_view fmt, Args&&... args) { return statusString("→", Colors::RESET, fmt, args...); }