From f7bdba6072906178e716393e13f197ba31de089d Mon Sep 17 00:00:00 2001 From: ADAM David Alan Martin Date: Tue, 7 Sep 2021 18:45:43 -0400 Subject: [PATCH] Add console colour support. --- Testing/TableTest.h | 7 +++++-- Testing/test.h | 10 ++-------- console.h | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 console.h diff --git a/Testing/TableTest.h b/Testing/TableTest.h index c33560d..7cb21d1 100644 --- a/Testing/TableTest.h +++ b/Testing/TableTest.h @@ -6,9 +6,12 @@ static_assert( __cplusplus > 201700, "C++17 Required" ); #include #include +#include +#include #include #include +#include namespace Alepha::Hydrogen::Testing { @@ -46,10 +49,10 @@ namespace Alepha::Hydrogen::Testing { if( std::apply( function, params ) != expected ) { - std::cout << " FAILURE: " << comment << std::endl; + std::cout << C::red << " FAILURE" << C::normal << ": " << comment << std::endl; ++failureCount; } - else std::cout << " SUCCESS: " << comment << std::endl; + else std::cout << C::green << " SUCCESS" << C::normal << ": " << comment << std::endl; } return failureCount; diff --git a/Testing/test.h b/Testing/test.h index b701bed..e75b34e 100644 --- a/Testing/test.h +++ b/Testing/test.h @@ -13,6 +13,8 @@ static_assert( __cplusplus > 201700, "C++17 Required" ); #include #include +#include + namespace Alepha::Hydrogen::Testing { inline namespace exports { inline namespace testing {} } @@ -23,14 +25,6 @@ namespace Alepha::Hydrogen::Testing using namespace std::literals::string_literals; - namespace C - { - const std::string csi= "\e["; - const std::string green= C::csi + "32m"; - const std::string red= C::csi + "31m"; - const std::string normal= C::csi + "0m"; - } - struct TestName { std::string name; diff --git a/console.h b/console.h new file mode 100644 index 0000000..e7e6a09 --- /dev/null +++ b/console.h @@ -0,0 +1,35 @@ +static_assert( __cplusplus > 201700, "C++17 Required" ); + +#pragma once + +#include + +#include + +namespace Alepha::Hydrogen +{ + inline namespace exports { inline namespace console {} } + + namespace detail::console + { + inline namespace exports {} + + namespace C + { + const std::string csi= "\e["; + const std::string green= C::csi + "32m"; + const std::string red= C::csi + "31m"; + const std::string normal= C::csi + "0m"; + } + + namespace exports + { + namespace C= detail::console::C; + } + } + + namespace exports::console + { + using namespace detail::console::exports; + } +}