3#include "di/container/string/prelude.h"
4#include "di/reflect/prelude.h"
5#include "di/types/integers.h"
6#include "di/vocab/optional/prelude.h"
7#include "di/vocab/span/prelude.h"
50 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<Color>) {
56constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<Color::Type>) {
58 return di::make_enumerators<
"Color::Type">(di::enumerator<
"Default", Default>, di::enumerator<
"Palette", Palette>,
59 di::enumerator<
"Custom", Custom>);
62constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<Color::Palette>) {
64 return di::make_enumerators<
"Color::Palette">(
65 di::enumerator<
"Black", Black>, di::enumerator<
"Red", Red>, di::enumerator<
"Green", Green>,
66 di::enumerator<
"Brown", Brown>, di::enumerator<
"Blue", Blue>, di::enumerator<
"Magenta", Magenta>,
67 di::enumerator<
"Cyan", Cyan>, di::enumerator<
"LightGrey", LightGrey>, di::enumerator<
"DarkGrey", DarkGrey>,
68 di::enumerator<
"LightRed", LightRed>, di::enumerator<
"LightGreen", LightGreen>,
69 di::enumerator<
"Yellow", Yellow>, di::enumerator<
"LightBlue", LightBlue>,
70 di::enumerator<
"LightMagenta", LightMagenta>, di::enumerator<
"LightCyan", LightCyan>,
71 di::enumerator<
"White", White>);
80constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<BlinkMode>) {
82 return di::make_enumerators<
"BlinkMode">(di::enumerator<
"None",
None>, di::enumerator<
"Normal",
Normal>,
83 di::enumerator<
"Rapid",
Rapid>);
92constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<FontWeight>) {
94 return di::make_enumerators<
"FontWeight">(di::enumerator<
"None",
None>, di::enumerator<
"Bold",
Bold>,
95 di::enumerator<
"Dim",
Dim>);
107constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<UnderlineMode>) {
109 return di::make_enumerators<
"UnderlineMode">(di::enumerator<
"None",
None>, di::enumerator<
"Normal",
Normal>,
110 di::enumerator<
"Double",
Double>, di::enumerator<
"Curly",
Curly>,
111 di::enumerator<
"Dotted",
Dotted>, di::enumerator<
"Dashed",
Dashed>);
136 -> di::Vector<Params>;
141 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<GraphicsRendition>) {
142 return di::make_fields<
"GraphicsRendition">(
Definition clipboard.h:10
BlinkMode
Definition graphics_rendition.h:74
@ None
Definition graphics_rendition.h:75
@ Normal
Definition graphics_rendition.h:76
@ Rapid
Definition graphics_rendition.h:77
@ None
Definition direction.h:8
constexpr auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< ClipboardMode >)
Definition clipboard.h:21
UnderlineMode
Definition graphics_rendition.h:98
@ None
Definition graphics_rendition.h:99
@ Dotted
Definition graphics_rendition.h:103
@ Double
Definition graphics_rendition.h:101
@ Curly
Definition graphics_rendition.h:102
@ Dashed
Definition graphics_rendition.h:104
Feature
Definition features.h:8
@ None
Definition features.h:9
FontWeight
Definition graphics_rendition.h:86
@ Bold
Definition graphics_rendition.h:88
@ None
Definition graphics_rendition.h:87
@ Dim
Definition graphics_rendition.h:89
Definition graphics_rendition.h:12
Palette
Definition graphics_rendition.h:19
@ LightGreen
Definition graphics_rendition.h:30
@ DarkGrey
Definition graphics_rendition.h:28
@ LightCyan
Definition graphics_rendition.h:34
@ Yellow
Definition graphics_rendition.h:31
@ Red
Definition graphics_rendition.h:21
@ Brown
Definition graphics_rendition.h:23
@ LightRed
Definition graphics_rendition.h:29
@ Cyan
Definition graphics_rendition.h:26
@ LightGrey
Definition graphics_rendition.h:27
@ LightMagenta
Definition graphics_rendition.h:33
@ Blue
Definition graphics_rendition.h:24
@ LightBlue
Definition graphics_rendition.h:32
@ Green
Definition graphics_rendition.h:22
@ White
Definition graphics_rendition.h:35
@ Magenta
Definition graphics_rendition.h:25
@ Black
Definition graphics_rendition.h:20
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< Color >)
Definition graphics_rendition.h:50
u8 r
Definition graphics_rendition.h:43
Type type
Definition graphics_rendition.h:42
auto operator==(Color const &other) const -> bool=default
u8 b
Definition graphics_rendition.h:45
auto operator<=>(Color const &other) const =default
u8 g
Definition graphics_rendition.h:44
constexpr Color(u8 r, u8 g, u8 b)
Definition graphics_rendition.h:40
Type
Definition graphics_rendition.h:13
@ Default
Color is the default (unset SGR)
Definition graphics_rendition.h:14
@ Custom
Color is true color (r, b, g fully specified)
Definition graphics_rendition.h:16
constexpr Color(Palette c)
Definition graphics_rendition.h:39
Definition graphics_rendition.h:114
static auto from_csi_params(Params const ¶ms)
Definition graphics_rendition.h:128
bool strike_through
Definition graphics_rendition.h:126
bool italic
Definition graphics_rendition.h:122
auto as_csi_params(Feature features=Feature::None, di::Optional< GraphicsRendition const & > prev={}) const -> di::Vector< Params >
Definition graphics_rendition.cpp:281
BlinkMode blink_mode
Definition graphics_rendition.h:120
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< GraphicsRendition >)
Definition graphics_rendition.h:141
Color fg
Definition graphics_rendition.h:115
UnderlineMode underline_mode
Definition graphics_rendition.h:121
auto operator==(GraphicsRendition const &other) const -> bool=default
void update_with_csi_params(Params const ¶ms)
Definition graphics_rendition.cpp:88
Color underline_color
Definition graphics_rendition.h:117
Color bg
Definition graphics_rendition.h:116
bool invisible
Definition graphics_rendition.h:125
FontWeight font_weight
Definition graphics_rendition.h:119
bool overline
Definition graphics_rendition.h:123
bool inverted
Definition graphics_rendition.h:124
auto operator<=>(GraphicsRendition const &other) const =default