13#include <fmt/format.h>
37 template<
typename... Args>
void println(fmt::format_string<Args...> fmt_str, Args&&... args)
const {
40 fmt::print(fmt_str, std::forward<Args>(args)...);
50 template<
typename... Args>
void print(fmt::format_string<Args...> fmt_str, Args&&... args)
const {
53 fmt::print(fmt_str, std::forward<Args>(args)...);
81 void saved(std::string
const& label, std::string
const& path)
const {
println(
"{} saved to {}", label, path); }
89 void progress(
int current,
int total,
int bar_width = 50)
const {
94 float pct =
static_cast<float>(current) /
static_cast<float>(total);
95 int pos =
static_cast<int>(
static_cast<float>(bar_width) * pct);
98 std::string bar = std::string(pos,
'-') + std::string(bar_width - pos,
' ');
100 if (current == total) {
107 "\r{:{}}" + bar_tpl +
" {}/{} ({}%) ",
113 static_cast<int>(pct * 100.0)
117 if (current == total) {
123 void print_indent()
const {
TTY-aware colored terminal output utilities.
std::string info(std::string const &s)
Format text in cyan (for informational highlights like progress bars).
Definition Color.hpp:124
std::string emphasis(std::string const &s)
Format text in bold (for emphasis / labels).
Definition Color.hpp:106
std::string success(std::string const &s)
Format text in green (for success messages).
Definition Color.hpp:96
void progress(int current, int total, int bar_width=50) const
Display a carriage-return progress bar.
Definition Output.hpp:89
Output(bool quiet)
Definition Output.hpp:29
void print(fmt::format_string< Args... > fmt_str, Args &&... args) const
Print indent + formatted content, no newline.
Definition Output.hpp:50
void saved(std::string const &label, std::string const &path) const
Print a file-save confirmation: "label saved to path".
Definition Output.hpp:81
int indent_level
Definition Output.hpp:27
bool quiet
Definition Output.hpp:26
void newline() const
Print a blank line. For visual separation between sections.
Definition Output.hpp:60
void println(fmt::format_string< Args... > fmt_str, Args &&... args) const
Print indent + formatted content + newline. The workhorse.
Definition Output.hpp:37
void indent()
Definition Output.hpp:68
void dedent()
Definition Output.hpp:70