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/runtime.h
Go to the documentation of this file.
1#pragma once
2
4#include <stdint.h>
5
10
11typedef struct {
12 const char *name;
15 union {
17 bool boolean;
18 double number;
19 const char *string;
20 } value;
22
23#define OPTIONS_REVISION_ANY UINT64_MAX
24#define OPTIONS_PATCH_MAX_EDITS 32
25
35
51
55asciichat_error_t options_prepare_patch(const options_t *current, const options_patch_t *patch, options_t *candidate,
56 bool remote_only);
61asciichat_error_t options_toggle(const char *name);
62asciichat_error_t options_adjust(const char *name, double amount);
63asciichat_error_t options_cycle(const char *name, int count);
64
66bool options_remote_render_field(const char *name);
67asciichat_error_t options_prepare_json(const options_t *current, const char *json, size_t length, options_t *candidate,
68 bool remote_only);
69asciichat_error_t options_apply_json(const char *json, size_t length, uint64_t expected_revision,
72char *options_values_json(const options_t *values, bool remote_only);
unsigned long long uint64_t
Definition common.h:63
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
struct options_state options_t
Immutable, RCU-published snapshot of the application's runtime configuration.
uint64_t options_revision(void)
Definition rcu.c:876
asciichat_error_t options_adjust(const char *name, double amount)
Definition rcu.c:914
char * options_values_json(const options_t *values, bool remote_only)
Definition rcu.c:1013
asciichat_error_t options_prepare_patch(const options_t *current, const options_patch_t *patch, options_t *candidate, bool remote_only)
Definition rcu.c:799
options_operation_t
@ OPTIONS_CYCLE
@ OPTIONS_ADD
@ OPTIONS_TOGGLE
@ OPTIONS_ASSIGN
options_value_type_t
@ OPTIONS_VALUE_DOUBLE
@ OPTIONS_VALUE_INT
@ OPTIONS_VALUE_BOOL
@ OPTIONS_VALUE_STRING
asciichat_error_t options_prepare_json(const options_t *current, const char *json, size_t length, options_t *candidate, bool remote_only)
Definition rcu.c:987
options_origin_t
@ OPTIONS_ORIGIN_LOCAL
@ OPTIONS_ORIGIN_CONFIG
@ OPTIONS_ORIGIN_REMOTE
asciichat_error_t options_apply_patch(const options_patch_t *patch, options_patch_result_t *result)
Definition rcu.c:837
asciichat_error_t options_toggle(const char *name)
Definition rcu.c:911
asciichat_error_t options_read_snapshot(options_snapshot_t *snapshot)
Definition rcu.c:865
asciichat_error_t options_apply_json(const char *json, size_t length, uint64_t expected_revision, options_origin_t origin, options_patch_result_t *result)
Definition rcu.c:1000
asciichat_error_t options_cycle(const char *name, int count)
Definition rcu.c:918
bool options_remote_render_field(const char *name)
Definition rcu.c:671
⚙️ Unified options parsing system for ascii-chat with builder pattern and lock-free access
options_operation_t operation
const char * string
const char * name
options_value_type_t type
const options_edit_t * edits
uint64_t expected_revision
options_origin_t origin
options_origin_t origin