diff options
author | Marcin Kowalczyk <qrczak@google.com> | 2022-10-05 07:42:50 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-10-05 07:43:33 -0700 |
commit | b3162b1da62711c663d0025e2eabeb83fd1f2728 (patch) | |
tree | aa3eca5757799729c8302553b20196e0c0386f34 /absl/strings/str_cat_test.cc | |
parent | d24156f63ca6d44a0dc05e260ad7810b2fcf3405 (diff) | |
download | abseil-b3162b1da62711c663d0025e2eabeb83fd1f2728.tar.gz abseil-b3162b1da62711c663d0025e2eabeb83fd1f2728.tar.bz2 abseil-b3162b1da62711c663d0025e2eabeb83fd1f2728.zip |
Make sinks provided to `AbslStringify()` usable with `absl::Format()`.
Such sinks must define ADL-callable `AbslFormatFlush()`. It can just forward to
`Append()`.
PiperOrigin-RevId: 479043790
Change-Id: I5d7d80ca1e17adf03b77726df8a52e2b4e9196ce
Diffstat (limited to 'absl/strings/str_cat_test.cc')
-rw-r--r-- | absl/strings/str_cat_test.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/absl/strings/str_cat_test.cc b/absl/strings/str_cat_test.cc index 868b9bce..1b3b7ece 100644 --- a/absl/strings/str_cat_test.cc +++ b/absl/strings/str_cat_test.cc @@ -21,6 +21,7 @@ #include <vector> #include "gtest/gtest.h" +#include "absl/strings/str_format.h" #include "absl/strings/substitute.h" #ifdef __ANDROID__ @@ -632,4 +633,21 @@ TEST(StrCat, AbslStringifyExample) { EXPECT_EQ(absl::StrCat("a ", p, " z"), "a (10, 20) z"); } +struct PointStringifyUsingFormat { + template <typename FormatSink> + friend void AbslStringify(FormatSink& sink, + const PointStringifyUsingFormat& p) { + absl::Format(&sink, "(%g, %g)", p.x, p.y); + } + + double x = 10.0; + double y = 20.0; +}; + +TEST(StrCat, AbslStringifyExampleUsingFormat) { + PointStringifyUsingFormat p; + EXPECT_EQ(absl::StrCat(p), "(10, 20)"); + EXPECT_EQ(absl::StrCat("a ", p, " z"), "a (10, 20) z"); +} + } // namespace |