Remove support for logging types via ToLogString extension

To have a single way of describing how to log a custom type: AbslStringify

Bug: None
Change-Id: I6a4a6db455685be01bff1b6eeddc121b4ea51b77
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364901
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43189}
This commit is contained in:
Danil Chapovalov 2024-10-07 19:16:54 +02:00 committed by WebRTC LUCI CQ
parent 215401f651
commit ebd3732829
4 changed files with 2 additions and 40 deletions

View File

@ -218,14 +218,8 @@ inline decltype(MakeVal(std::declval<absl::underlying_type_t<T>>())) MakeVal(
return {static_cast<absl::underlying_type_t<T>>(x)};
}
template <typename T, std::enable_if_t<has_to_log_string_v<T>>* = nullptr>
ToStringVal MakeVal(const T& x) {
return {ToLogString(x)};
}
template <typename T,
std::enable_if_t<absl::HasAbslStringify<T>::value &&
!has_to_log_string_v<T>>* = nullptr>
std::enable_if_t<absl::HasAbslStringify<T>::value>* = nullptr>
ToStringVal MakeVal(const T& x) {
return {absl::StrCat(x)};
}

View File

@ -331,14 +331,8 @@ inline Val<LogArgType::kLogMetadataTag, LogMetadataTag> MakeVal(
}
#endif
template <typename T, absl::enable_if_t<has_to_log_string<T>::value>* = nullptr>
ToStringVal MakeVal(const T& x) {
return {ToLogString(x)};
}
template <typename T,
std::enable_if_t<absl::HasAbslStringify<T>::value &&
!has_to_log_string<T>::value>* = nullptr>
std::enable_if_t<absl::HasAbslStringify<T>::value>* = nullptr>
ToStringVal MakeVal(const T& x) {
return {absl::StrCat(x)};
}
@ -351,7 +345,6 @@ template <typename T,
std::enable_if_t<std::is_class<T1>::value && //
!std::is_same<T1, std::string>::value && //
!std::is_same<T1, LogMetadata>::value && //
!has_to_log_string<T1>::value && //
!absl::HasAbslStringify<T1>::value &&
#ifdef WEBRTC_ANDROID
!std::is_same<T1, LogMetadataTag>::value && //

View File

@ -389,20 +389,5 @@ TEST(LogTest, UseAbslStringForCustomTypes) {
LogMessage::RemoveLogToStream(&stream);
}
struct TestStruct {};
std::string ToLogString(TestStruct foo) {
return "bar";
}
TEST(LogTest, ToLogStringUsedForUnknownTypes) {
std::string str;
LogSinkImpl stream(&str);
LogMessage::AddLogToStream(&stream, LS_INFO);
TestStruct t;
RTC_LOG(LS_INFO) << t;
EXPECT_THAT(str, ::testing::HasSubstr("bar"));
LogMessage::RemoveLogToStream(&stream);
}
} // namespace rtc
#endif // RTC_LOG_ENABLED()

View File

@ -37,16 +37,6 @@ class HasDataAndSize {
static constexpr bool value = std::is_same<decltype(Test<DS>(0)), int>::value;
};
template <typename T, typename = void>
struct has_to_log_string : std::false_type {};
template <typename T>
struct has_to_log_string<T,
std::enable_if_t<std::is_convertible_v<
decltype(ToLogString(std::declval<T>())),
std::string>>> : std::true_type {};
template <typename T>
constexpr bool has_to_log_string_v = has_to_log_string<T>::value;
namespace test_has_data_and_size {
template <typename DR, typename SR>