Adopt absl::string_view in function parameters under rtc_base/
This is part of a large-scale effort to increase adoption of
absl::string_view across the WebRTC code base.
This CL converts the majority of "const std::string&"s in function
parameters under rtc_base/ to absl::string_view.
Bug: webrtc:13579
Change-Id: I2b1e3776aa42326aa405f76bb324a2d233b21dca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254081
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Anders Lilienthal <andersc@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36239}
diff --git a/rtc_base/string_utils.h b/rtc_base/string_utils.h
index 1bb9d17..a9cdd61 100644
--- a/rtc_base/string_utils.h
+++ b/rtc_base/string_utils.h
@@ -16,6 +16,8 @@
#include <stdio.h>
#include <string.h>
+#include "absl/strings/string_view.h"
+
#if defined(WEBRTC_WIN)
#include <malloc.h>
#include <wchar.h>
@@ -30,10 +32,24 @@
#include <string>
+#include "absl/strings/string_view.h"
+
namespace rtc {
const size_t SIZE_UNKNOWN = static_cast<size_t>(-1);
+// An absl::string_view comparator functor for use with container types such as
+// std::map that support heterogenous lookup.
+//
+// Example usage:
+// std::map<std::string, int, rtc::AbslStringViewCmp> my_map;
+struct AbslStringViewCmp {
+ using is_transparent = void;
+ bool operator()(absl::string_view a, absl::string_view b) const {
+ return a < b;
+ }
+};
+
// Safe version of strncpy that always nul-terminate.
size_t strcpyn(char* buffer,
size_t buflen,
@@ -57,7 +73,7 @@
return ws;
}
-inline std::wstring ToUtf16(const std::string& str) {
+inline std::wstring ToUtf16(absl::string_view str) {
return ToUtf16(str.data(), str.length());
}