8#include <ascii-chat/options/enums.h>
9#include <ascii-chat/common.h>
13static const char *log_level_values[] = {
"dev",
"debug",
"info",
"warn",
"error",
"fatal"};
15static const char *color_mode_values[] = {
"auto",
"none",
"16",
"256",
"truecolor"};
17static const char *color_filter_values[] = {
"none",
"black",
"white",
"green",
"magenta",
"fuchsia",
"orange",
18 "teal",
"cyan",
"pink",
"red",
"yellow",
"rainbow"};
20static const char *palette_values[] = {
"standard",
"blocks",
"digital",
"minimal",
"cool",
"custom"};
22static const char *render_mode_values[] = {
"foreground",
"fg",
"background",
"bg",
"half-block"};
24static const char *reconnect_values[] = {
"off",
"auto"};
27static const enum_descriptor_t enum_registry[] = {
28 {.option_name =
"log-level",
29 .values = log_level_values,
30 .value_count =
sizeof(log_level_values) /
sizeof(log_level_values[0])},
31 {.option_name =
"color-mode",
32 .values = color_mode_values,
33 .value_count =
sizeof(color_mode_values) /
sizeof(color_mode_values[0])},
34 {.option_name =
"color-filter",
35 .values = color_filter_values,
36 .value_count =
sizeof(color_filter_values) /
sizeof(color_filter_values[0])},
37 {.option_name =
"palette",
38 .values = palette_values,
39 .value_count =
sizeof(palette_values) /
sizeof(palette_values[0])},
40 {.option_name =
"render-mode",
41 .values = render_mode_values,
42 .value_count =
sizeof(render_mode_values) /
sizeof(render_mode_values[0])},
43 {.option_name =
"reconnect",
44 .values = reconnect_values,
45 .value_count =
sizeof(reconnect_values) /
sizeof(reconnect_values[0])},
47 {.option_name = NULL, .values = NULL, .value_count = 0}};
50 if (!option_name || !value_count) {
54 for (
size_t i = 0; enum_registry[i].option_name != NULL; i++) {
55 if (strcmp(enum_registry[i].option_name, option_name) == 0) {
56 *value_count = enum_registry[i].value_count;
57 return enum_registry[i].values;
70 for (
size_t i = 0; enum_registry[i].option_name != NULL; i++) {
71 if (strcmp(enum_registry[i].option_name, option_name) == 0) {
const char ** options_get_enum_values(const char *option_name, size_t *value_count)
bool options_is_enum_option(const char *option_name)