Added format_to(buffer, text_style, ...) overload
This commit is contained in:
parent
e737672614
commit
5e705209d8
@ -618,6 +618,16 @@ inline auto format_to(OutputIt out, const text_style& ts, const S& format_str,
|
||||
fmt::make_args_checked<Args...>(format_str, args...));
|
||||
}
|
||||
|
||||
template <typename S, typename... Args, size_t SIZE = inline_buffer_size,
|
||||
typename Char = enable_if_t<detail::is_string<S>::value, char_t<S>>>
|
||||
inline typename buffer_context<Char>::iterator format_to(
|
||||
basic_memory_buffer<Char, SIZE>& buf, const text_style& ts,
|
||||
const S& format_str, Args&&... args) {
|
||||
const auto& vargs = fmt::make_args_checked<Args...>(format_str, args...);
|
||||
detail::vformat_to(buf, ts, to_string_view(format_str), vargs);
|
||||
return detail::buffer_appender<Char>(buf);
|
||||
}
|
||||
|
||||
FMT_END_NAMESPACE
|
||||
|
||||
#endif // FMT_COLOR_H_
|
||||
|
||||
@ -97,3 +97,12 @@ TEST(ColorsTest, FormatToOutAcceptsTextStyle) {
|
||||
EXPECT_EQ(fmt::to_string(out),
|
||||
"\x1b[38;2;255;020;030mrgb(255,20,30)123\x1b[0m");
|
||||
}
|
||||
|
||||
TEST(ColorsTest, FormatToBufAcceptsTextStyle) {
|
||||
fmt::text_style ts = fg(fmt::rgb(255, 20, 30));
|
||||
fmt::memory_buffer buf;
|
||||
fmt::format_to(buf, ts, "rgb(255,20,30){}{}{}", 1, 2, 3);
|
||||
|
||||
EXPECT_EQ(std::string(buf.data(), buf.size()),
|
||||
"\x1b[38;2;255;020;030mrgb(255,20,30)123\x1b[0m");
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user