ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
options/registry/common.h
Go to the documentation of this file.
1
9
10#pragma once
11
14#include <stdbool.h>
15#include <stddef.h>
16
27typedef const void *(*mode_default_getter_fn)(asciichat_mode_t mode);
28
32typedef struct {
33 const char *long_name;
36 size_t offset;
37 const void *default_value;
39 const char *help_text;
40 const char *group;
41 const char *arg_placeholder;
43 const char *env_var_name;
44 bool (*validate_fn)(const void *options_struct);
45 bool (*parse_fn)(const char *arg, void *dest, char **error_msg);
55
60typedef struct {
62 const char *name;
64
69#define REGISTRY_TERMINATOR() \
70 {.long_name = NULL, \
71 .short_name = '\0', \
72 .type = OPTION_TYPE_BOOL, \
73 .offset = 0, \
74 .default_value = NULL, \
75 .mode_default_getter = NULL, \
76 .default_value_size = 0, \
77 .help_text = NULL, \
78 .group = NULL, \
79 .arg_placeholder = NULL, \
80 .required = false, \
81 .env_var_name = NULL, \
82 .validate_fn = NULL, \
83 .parse_fn = NULL, \
84 .owns_memory = false, \
85 .optional_arg = false, \
86 .mode_bitmask = OPTION_MODE_NONE, \
87 .metadata = {0}}
Options builder API for flexible command-line option configuration.
option_type_t
Custom help section descriptor.
Definition builder.h:166
asciichat_mode_t
Mode type for options parsing.
Definition options.h:919
option_mode_bitmask_t
Option mode bitmask.
Definition options.h:936
const void *(* mode_default_getter_fn)(asciichat_mode_t mode)
Temporary builder for a help/category index. name identifies the category and entries points at the e...
⚙️ Unified options parsing system for ascii-chat with builder pattern and lock-free access
Registry entry - stores option definition with mode bitmask and metadata.
const registry_entry_t * entries
Completion metadata attached to one option descriptor.
Definition builder.h:197
Registry entry - stores option definition with mode bitmask and metadata.
option_type_t type
bool(* validate_fn)(const void *options_struct)
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
bool(* parse_fn)(const char *arg, void *dest, char **error_msg)
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