升级print打印

升级buffer,支持模板append
This commit is contained in:
xx
2024-04-16 16:30:57 +08:00
parent e8d597ea7b
commit 708dbcd201
4 changed files with 14 additions and 16 deletions

View File

@@ -44,9 +44,10 @@ public:
void append(const char* data, size_t length); void append(const char* data, size_t length);
void append(const ylib::buffer& data); void append(const ylib::buffer& data);
void append(std::initializer_list<uchar> char_list); void append(std::initializer_list<uchar> char_list);
template<typename T>
void append_c(char value); void append(const T& value) {
void append_uc(unsigned char value); append((const char*)&value, sizeof(T));
}
void clear(); void clear();
void resize(size_t length); void resize(size_t length);

View File

@@ -4,6 +4,7 @@
namespace ylib namespace ylib
{ {
void println(const std::string& text,ylib::ConsoleTextColor color = ylib::ConsoleTextColor::DEFAULT); void println(const std::string& text,ylib::ConsoleTextColor color = ylib::ConsoleTextColor::DEFAULT);
void print(const std::string& text, ylib::ConsoleTextColor color = ylib::ConsoleTextColor::DEFAULT);
} }

View File

@@ -74,15 +74,7 @@ void ylib::buffer::append(std::initializer_list<uchar> char_list)
this->append((char*)new_buf, idx); this->append((char*)new_buf, idx);
free(new_buf); free(new_buf);
} }
void ylib::buffer::append_c(char value)
{
append((const char*)&value,1);
}
void ylib::buffer::append_uc(unsigned char value)
{
append((const char*)&value,1);
}
void ylib::buffer::clear() void ylib::buffer::clear()
{ {
@@ -232,7 +224,7 @@ unsigned char &ylib::buffer::operator[](size_t index) const
if (index + 1 > m_data.m_use_length) if (index + 1 > m_data.m_use_length)
{ {
std::string msg = "ylib::buffer::operator[] index="+std::to_string(index) + " but data length is "+std::to_string(m_data.m_use_length); std::string msg = "ylib::buffer::operator[] index="+std::to_string(index) + " but data length is "+std::to_string(m_data.m_use_length);
throw std::exception(msg.c_str()); throw ylib::exception(msg.c_str());
} }
return m_data.data()[index]; return m_data.data()[index];
} }

View File

@@ -10,15 +10,19 @@ const std::string LINUX_RED = "\033[31m";
const std::string LINUX_GREEN = "\033[32m"; const std::string LINUX_GREEN = "\033[32m";
const std::string LINUX_YELLOW = "\033[33m"; const std::string LINUX_YELLOW = "\033[33m";
const std::string LINUX_BLUE = "\033[34m"; const std::string LINUX_BLUE = "\033[34m";
//#endif //#endif
void ylib::println(const std::string& text, ylib::ConsoleTextColor color) void ylib::println(const std::string& text, ylib::ConsoleTextColor color)
{
print(text + "\r\n", color);
}
void ylib::print(const std::string& text, ylib::ConsoleTextColor color)
{ {
#ifdef _WIN32 #ifdef _WIN32
if(color == ylib::YELLOW) if (color == ylib::YELLOW)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
else else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
printf("%s\r\n", text.c_str()); printf("%s", text.c_str());
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ylib::ConsoleTextColor::DEFAULT); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ylib::ConsoleTextColor::DEFAULT);
#else #else
switch (color) switch (color)
@@ -40,7 +44,7 @@ void ylib::println(const std::string& text, ylib::ConsoleTextColor color)
break; break;
default: default:
break; break;
} }
std::cout << LINUX_RESET << std::endl; std::cout << LINUX_RESET << std::endl;
#endif #endif