Buffet: utility function tweaks
Various tweakes to helper functions and classes, split off from
a larger CL that required them.
1. Added Error::AddToPrintf to help add formatted error messages.
2. Added Error::GetFirstError to get the innermost error occurred.
3. Added string_utils::ToString and swept code using std::to_string
in order to ensure we format doubles correctly (using %g instead
of %f format specifier) and bool values (using "true"/"false"
instead of 1/0).
4. Fixed C-style cast in http_utils.h and using static_cast now.
5. Fixed a few linter warnings. Also since the linter was updated
there is no reason to have some NOLINT since many C++11 features
are now recognized properly by cpplint.
BUG=None
TEST=All unit tests pass.
Change-Id: I208ffaa3f0ec0a5ff78bf9e8151e784ec8cd77e2
Reviewed-on: https://chromium-review.googlesource.com/202962
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/string_utils.cc b/buffet/string_utils.cc
index 55c7d3f..8916e96 100644
--- a/buffet/string_utils.cc
+++ b/buffet/string_utils.cc
@@ -9,6 +9,7 @@
#include <utility>
#include <base/strings/string_util.h>
+#include <base/strings/stringprintf.h>
namespace buffet {
namespace string_utils {
@@ -36,7 +37,7 @@
if (trim_whitespaces) {
std::for_each(tokens.begin(), tokens.end(),
- [](std::string& str) { // NOLINT(runtime/references)
+ [](std::string& str) {
base::TrimWhitespaceASCII(str, base::TRIM_ALL, &str); });
}
@@ -86,5 +87,13 @@
return str1 + delimiter + str2;
}
+std::string ToString(double value) {
+ return base::StringPrintf("%g", value);
+}
+
+std::string ToString(bool value) {
+ return value ? "true" : "false";
+}
+
} // namespace string_utils
} // namespace buffet