C++ Utilities  5.6.0
Useful C++ classes and routines such as argument parser, IO and conversion utilities
ansiescapecodes.cpp
Go to the documentation of this file.
1 #include "./ansiescapecodes.h"
2 
3 namespace CppUtilities {
4 
8 namespace EscapeCodes {
9 
22 bool enabled =
23 #ifdef CPP_UTILITIES_ESCAPE_CODES_ENABLED_BY_DEFAULT
24  true
25 #else
26  false
27 #endif
28  ;
29 
33 std::ostream &operator<<(std::ostream &stream, Phrases phrase)
34 {
35  switch (phrase) {
36  case Phrases::Error:
38  stream << "Error: ";
41  break;
42  case Phrases::Warning:
44  stream << "Warning: ";
47  break;
48  case Phrases::End:
50  stream << '\n';
51  break;
53  stream << " ";
56  break;
59  stream << "==> ";
62  break;
65  stream << " -> ";
68  break;
71  stream << "==> ERROR: ";
74  break;
77  stream << "==> WARNING: ";
80  break;
81  case Phrases::EndFlush:
83  stream << std::endl;
84  break;
85  case Phrases::Info:
87  stream << "Info: ";
90  break;
91  case Phrases::Override:
92  eraseLine(stream);
93  stream << '\r';
94  break;
95  case Phrases::SubError:
97  stream << " -> ERROR: ";
100  break;
101  case Phrases::SubWarning:
103  stream << " -> WARNING: ";
105  setStyle(stream, TextAttribute::Bold);
106  break;
109  stream << "==> ";
111  setStyle(stream, TextAttribute::Bold);
112  break;
113  }
114  return stream;
115 }
116 
117 std::string_view phraseString(Phrases phrase)
118 {
119  using namespace std::string_view_literals;
120  switch (phrase) {
121  case Phrases::Error:
122  return "Error: "sv;
123  case Phrases::Warning:
124  return "Warning: "sv;
126  return " "sv;
128  return "==> "sv;
129  case Phrases::SubMessage:
130  return " -> "sv;
132  return "==> ERROR: "sv;
134  return "==> WARNING: ";
135  case Phrases::Info:
136  return "Info: "sv;
137  case Phrases::SubError:
138  return " -> ERROR: "sv;
139  case Phrases::SubWarning:
140  return " -> WARNING: "sv;
142  return "==> "sv;
143  case Phrases::End:
144  case Phrases::EndFlush:
145  return "\n";
146  default:
147  return std::string_view{};
148  }
149 }
150 
151 } // namespace EscapeCodes
152 
153 } // namespace CppUtilities
CppUtilities::EscapeCodes::Color::Red
@ Red
CppUtilities::EscapeCodes::TextAttribute::Bold
@ Bold
CppUtilities::EscapeCodes::eraseLine
void eraseLine(std::ostream &stream)
Definition: ansiescapecodes.h:100
CppUtilities::EscapeCodes::Phrases
Phrases
The Phrases enum contains standard phrases which can be printed to any std::ostream.
Definition: ansiescapecodes.h:137
CppUtilities::EscapeCodes::Color::Green
@ Green
CppUtilities::EscapeCodes::Phrases::Override
@ Override
CppUtilities::EscapeCodes::phraseString
CPP_UTILITIES_EXPORT std::string_view phraseString(Phrases phrase)
Definition: ansiescapecodes.cpp:117
CppUtilities::EscapeCodes::Phrases::SubMessage
@ SubMessage
CppUtilities::EscapeCodes::Phrases::Warning
@ Warning
CppUtilities::EscapeCodes::Phrases::End
@ End
CppUtilities::EscapeCodes::operator<<
std::ostream & operator<<(std::ostream &stream, TextAttribute displayAttribute)
Definition: ansiescapecodes.h:107
CppUtilities::EscapeCodes::Phrases::InfoMessage
@ InfoMessage
CppUtilities::EscapeCodes::Color::Yellow
@ Yellow
CppUtilities::EscapeCodes::Phrases::Error
@ Error
CppUtilities::EscapeCodes::Phrases::EndFlush
@ EndFlush
CppUtilities::EscapeCodes::Phrases::SubError
@ SubError
ansiescapecodes.h
CppUtilities::EscapeCodes::Phrases::ErrorMessage
@ ErrorMessage
CppUtilities
Contains all utilities provides by the c++utilities library.
Definition: argumentparser.h:17
CppUtilities::EscapeCodes::Phrases::PlainMessage
@ PlainMessage
CppUtilities::EscapeCodes::Phrases::Info
@ Info
CppUtilities::EscapeCodes::Phrases::SuccessMessage
@ SuccessMessage
CppUtilities::EscapeCodes::Color::White
@ White
CppUtilities::EscapeCodes::Phrases::WarningMessage
@ WarningMessage
CppUtilities::EscapeCodes::Phrases::SubWarning
@ SubWarning
CppUtilities::EscapeCodes::setStyle
void setStyle(std::ostream &stream, TextAttribute displayAttribute=TextAttribute::Reset)
Definition: ansiescapecodes.h:34
CppUtilities::EscapeCodes::ColorContext::Foreground
@ Foreground
CppUtilities::EscapeCodes::Color::Blue
@ Blue
CppUtilities::EscapeCodes::TextAttribute::Reset
@ Reset
CppUtilities::EscapeCodes::enabled
CPP_UTILITIES_EXPORT bool enabled
Controls whether the functions inside the EscapeCodes namespace actually make use of escape codes.
Definition: ansiescapecodes.cpp:22