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:
parent
215401f651
commit
ebd3732829
@ -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)};
|
||||
}
|
||||
|
||||
@ -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 && //
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user