ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
core.h
Go to the documentation of this file.
1
12
13#pragma once
14
15/* Existing buffer budgets in bytes, including NUL for text storage. */
16#define OPTIONS_REGISTRY_CAPACITY 2048
17
18#include "common.h"
19#include <ascii-chat/common.h>
21#include <stdbool.h>
22#include <stddef.h>
23
24// ============================================================================
25// Global Registry Data (defined in registry.c)
26// ============================================================================
27
28// Unified view of all registry entries
30extern size_t g_registry_size;
31extern bool g_metadata_populated;
32
33// Category builders array - maps categories to their entry arrays
35
36// ============================================================================
37// Internal Helper Functions (implemented in core.c)
38// ============================================================================
39
42void registry_init_size(void);
43const registry_entry_t *registry_find_entry_by_name(const char *long_name);
46bool registry_entry_applies_to_mode(const registry_entry_t *entry, asciichat_mode_t mode, bool for_binary_help);
Options builder API for flexible command-line option configuration.
⚙️ Common definitions, error codes, macros, and types shared throughout the application
option_descriptor_t registry_entry_to_descriptor(const registry_entry_t *entry)
Convert registry entry to option descriptor.
Definition core.c:161
void registry_init_from_builders(void)
Initialize registry from category builders Populates g_options_registry by concatenating all category...
Definition core.c:23
asciichat_error_t registry_validate_unique_options(void)
Validate that no short or long options appear more than once in the registry.
Definition core.c:71
const registry_entry_t * registry_find_entry_by_name(const char *long_name)
Get a registry entry by long name.
Definition core.c:127
bool registry_entry_applies_to_mode(const registry_entry_t *entry, asciichat_mode_t mode, bool for_binary_help)
Check if an option applies to the given mode for display purposes.
Definition core.c:200
#define OPTIONS_REGISTRY_CAPACITY
Definition core.h:16
const registry_entry_t * registry_find_entry_by_short(char short_name)
Get a registry entry by short name.
Definition core.c:145
void registry_init_size(void)
Initialize registry size and metadata.
Definition core.c:108
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
asciichat_mode_t
Mode type for options parsing.
Definition options.h:919
Shared structures and macros for registry implementation.
registry_entry_t g_options_registry[2048]
Definition registry.c:41
bool g_metadata_populated
Definition registry.c:44
category_builder_t g_category_builders[]
Definition registry.c:26
size_t g_registry_size
Definition registry.c:43
Registry entry - stores option definition with mode bitmask and metadata.
The complete registry entry for one command-line/configuration option.
Definition builder.h:249
Registry entry - stores option definition with mode bitmask and metadata.