9template<Impl<Writer> Writer, concepts::Encoding Enc>
16 if constexpr (
requires { writer.interactive_device(); }) {
17 m_print_colors = writer.interactive_device();
26 for (
auto code_unit : code_units) {
27 auto bytes = util::bit_cast<
Array<
Byte,
sizeof(code_unit)>>(code_unit);
33 if (!m_print_colors) {
37 auto [before, after] = style.render_to_ansi_escapes<Enc>();
38 for (
auto code_point : before) {
42 for (
auto code_point : after) {
48 constexpr auto encoding()
const {
return m_encoding; }
52 [[no_unique_address]] Enc m_encoding;
53 bool m_print_colors {
false };
Enc Encoding
Definition writer_format_context.h:12
constexpr ~WriterFormatContext()
Definition writer_format_context.h:21
constexpr auto with_style(format::Style style, concepts::InvocableTo< Result< void > > auto inner) -> Result< void >
Definition writer_format_context.h:32
constexpr void output(meta::EncodingCodePoint< Enc > code_point)
Definition writer_format_context.h:23
void SupportsStyle
Definition writer_format_context.h:13
constexpr auto encoding() const
Definition writer_format_context.h:48
constexpr WriterFormatContext(Writer &writer, Enc enc)
Definition writer_format_context.h:15
#define DI_TRY(...)
Definition monad_try.h:13
constexpr auto convert_to_code_units
Definition encoding.h:139
constexpr auto flush
Definition writer.h:57
meta::List< WriteSome, Flush > Writer
Definition writer.h:59
constexpr auto write_some
Definition writer.h:56
std::byte Byte
Definition byte.h:63
Expected< T, Error > Result
Definition result.h:8
Definition span_fixed_size.h:37