ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
option_type_handler_t Struct Reference

Type handler - encapsulates all 4 operations for one option type. More...

Data Fields

void(* extract )(toml_datum_t datum, char *value_str, int *int_val, bool *bool_val, double *double_val, bool *has_value)
 Extract value from TOML datum.
 
asciichat_error_t(* parse_validate )(const char *value_str, const config_option_metadata_t *meta, option_parsed_value_t *parsed, char *error_msg, size_t error_size)
 Parse and validate value.
 
asciichat_error_t(* write_to_struct )(const option_parsed_value_t *parsed, const config_option_metadata_t *meta, options_t *opts, char *error_msg, size_t error_size)
 Write to options struct.
 
void(* format_output )(const char *field_ptr, size_t field_size, const config_option_metadata_t *meta, char *buf, size_t bufsize)
 Format for TOML output.
 

Detailed Description

Type handler - encapsulates all 4 operations for one option type.

Each operation is a stage in the config parsing pipeline:

  1. Extract: TOML datum → intermediate (value_str, int_val, etc)
  2. Parse: intermediate → validated parsed value
  3. Write: parsed value → struct field
  4. Format: struct field → TOML output string

Type handler - encapsulates all 4 operations for one option type

Function pointers for TOML extraction, validation, writing to options struct, and formatting output for each option type (bool, int, string, double).

Definition at line 145 of file config.c.

Field Documentation

◆ extract

void(* option_type_handler_t::extract) (toml_datum_t datum, char *value_str, int *int_val, bool *bool_val, double *double_val, bool *has_value)

Extract value from TOML datum.

Definition at line 146 of file config.c.

◆ format_output

void(* option_type_handler_t::format_output) (const char *field_ptr, size_t field_size, const config_option_metadata_t *meta, char *buf, size_t bufsize)

Format for TOML output.

Definition at line 154 of file config.c.

Referenced by config_create_default().

◆ parse_validate

asciichat_error_t(* option_type_handler_t::parse_validate) (const char *value_str, const config_option_metadata_t *meta, option_parsed_value_t *parsed, char *error_msg, size_t error_size)

Parse and validate value.

Definition at line 148 of file config.c.

◆ write_to_struct

asciichat_error_t(* option_type_handler_t::write_to_struct) (const option_parsed_value_t *parsed, const config_option_metadata_t *meta, options_t *opts, char *error_msg, size_t error_size)

Write to options struct.

Definition at line 151 of file config.c.


The documentation for this struct was generated from the following file: