From 72806d69fdbad19fab91e10c117cd23129ff2a27 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 22 Sep 2017 00:22:08 +0200 Subject: [PATCH] Add << overloads for formatting output --- io/ansiescapecodes.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/io/ansiescapecodes.h b/io/ansiescapecodes.h index d1d5310..072c261 100644 --- a/io/ansiescapecodes.h +++ b/io/ansiescapecodes.h @@ -4,6 +4,7 @@ #include "../global.h" #include +#include /*! * \brief Encapsulates functions for formatted terminal output using ANSI escape codes. @@ -79,6 +80,24 @@ inline void eraseLine(std::ostream &stream) { stream << "\33[2K"; } + +inline std::ostream &operator<<(std::ostream &stream, TextAttribute displayAttribute) +{ + setStyle(stream, displayAttribute); + return stream; +} + +inline auto color(Color foreground, Color background, TextAttribute displayAttribute = TextAttribute::Reset) +{ + return std::make_tuple(foreground, background, displayAttribute); +} + +inline std::ostream &operator<<(std::ostream &stream, std::tuple displayAttribute) +{ + setStyle(stream, std::get<0>(displayAttribute), std::get<1>(displayAttribute), std::get<2>(displayAttribute)); + return stream; +} + } // namespace EscapeCodes #endif // IOUTILITIES_ANSIESCAPECODES