ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
options/registry/common.h
Go to the documentation of this file.
1
10#pragma once
11
14#include <stdbool.h>
15#include <stddef.h>
16
26typedef const void *(*mode_default_getter_fn)(asciichat_mode_t mode);
27
31typedef struct {
32 const char *long_name;
35 size_t offset;
36 const void *default_value;
38 const char *help_text;
39 const char *group;
40 const char *arg_placeholder;
42 const char *env_var_name;
43 bool (*validate_fn)(const void *options_struct, char **error_msg);
44 bool (*parse_fn)(const char *arg, void *dest, char **error_msg);
52
56typedef struct {
58 const char *name;
60
65#define REGISTRY_TERMINATOR() \
66 {.long_name = NULL, \
67 .short_name = '\0', \
68 .type = OPTION_TYPE_BOOL, \
69 .offset = 0, \
70 .default_value = NULL, \
71 .mode_default_getter = NULL, \
72 .default_value_size = 0, \
73 .help_text = NULL, \
74 .group = NULL, \
75 .arg_placeholder = NULL, \
76 .required = false, \
77 .env_var_name = NULL, \
78 .validate_fn = NULL, \
79 .parse_fn = NULL, \
80 .owns_memory = false, \
81 .optional_arg = false, \
82 .mode_bitmask = OPTION_MODE_NONE, \
83 .metadata = {0}}
Options builder API for flexible command-line option configuration.
option_type_t
Option value types.
Definition builder.h:161
asciichat_mode_t
Mode type for options parsing.
option_mode_bitmask_t
Option mode bitmask.
⚙️ Unified options parsing system for ascii-chat with builder pattern and lock-free access
const void *(* mode_default_getter_fn)(asciichat_mode_t mode)
Mode-aware default value getter function type.
ClangTool/LibTooling compatibility shim for stdbool.h.
#define bool
Definition stdbool.h:61
Category builder structure - maps categories to their entry arrays.
const registry_entry_t * entries
Metadata for shell completion generation.
Definition builder.h:192
Registry entry - stores option definition with mode bitmask and metadata.
option_type_t type
bool optional_arg
const char * group
bool required
bool owns_memory
const char * long_name
size_t default_value_size
mode_default_getter_fn mode_default_getter
Mode-aware default getter (NULL if using default_value) - LAST for backward compat.
option_mode_bitmask_t mode_bitmask
const char * env_var_name
const void * default_value
Default value (single value for all modes, or NULL if mode_default_getter is set)
const char * arg_placeholder
Custom argument placeholder (e.g., "SHELL [FILE]" instead of "STR")
option_metadata_t metadata
Enum values, numeric ranges, examples.
char short_name
const char * help_text
size_t offset