From ea2f69a0d7587700797c5fc38e3b63e7eb1bc0a3 Mon Sep 17 00:00:00 2001 From: Gregor Jasny Date: Tue, 20 Jul 2021 03:17:44 +0200 Subject: [PATCH] Add httplib::Error to std::string function (#999) Fixes: #978 --- httplib.h | 25 ++++++++++++++++++++++++- test/test.cc | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/httplib.h b/httplib.h index 6e950e8..1250e2b 100644 --- a/httplib.h +++ b/httplib.h @@ -798,8 +798,31 @@ enum class Error { Compression, }; +inline std::string to_string(const Error error) { + switch (error) { + case Error::Success: return "Success"; + case Error::Connection: return "Connection"; + case Error::BindIPAddress: return "BindIPAddress"; + case Error::Read: return "Read"; + case Error::Write: return "Write"; + case Error::ExceedRedirectCount: return "ExceedRedirectCount"; + case Error::Canceled: return "Canceled"; + case Error::SSLConnection: return "SSLConnection"; + case Error::SSLLoadingCerts: return "SSLLoadingCerts"; + case Error::SSLServerVerification: return "SSLServerVerification"; + case Error::UnsupportedMultipartBoundaryChars: + return "UnsupportedMultipartBoundaryChars"; + case Error::Compression: return "Compression"; + case Error::Unknown: return "Unknown"; + default: break; + } + + return "Invalid"; +} + inline std::ostream &operator<<(std::ostream &os, const Error &obj) { - os << static_cast::type>(obj); + os << to_string(obj); + os << " (" << static_cast::type>(obj) << ')'; return os; } diff --git a/test/test.cc b/test/test.cc index 4cda09d..63fdf51 100644 --- a/test/test.cc +++ b/test/test.cc @@ -542,7 +542,7 @@ TEST(ConnectionErrorTest, InvalidHostCheckResultErrorToString) { ASSERT_TRUE(!res); stringstream s; s << "error code: " << res.error(); - EXPECT_EQ("error code: 2", s.str()); + EXPECT_EQ("error code: Connection (2)", s.str()); } TEST(ConnectionErrorTest, InvalidPort) {