1#ifndef ARC_STD_CONFIG_H_
2#define ARC_STD_CONFIG_H_
12#define ARC_KEY_BUCKET_SIZE 0x20
13#define ARC_GROUP_BUCKET_SIZE 0x20
14#define ARC_GROUP_DATA_BUCKET_SIZE 0x20
107#define ARC_CONFIG_FILE_IO_LOAD 0x00
108#define ARC_CONFIG_FILE_IO_UNLOAD 0x01
124#ifdef ARC_DEFAULT_CONFIG
struct ARC_Config ARC_Config
a type that keeps permanice of data for when loading and unloading config files
void ARC_Config_AddKeyCString(ARC_Config *config, const char *type, uint64_t length, ARC_ConfigKeyRead keyRead, ARC_ConfigKeyDelete keyDelete)
adds a key from a cstring
uint8_t(* ARC_ConfigKeyRead)(ARC_Config *config, ARC_String *string, void **value)
a function to read a key from string to a ARC_ConfigTypeTemplate
void ARC_Config_Create(ARC_Config **config)
creates ARC_Config type
void ARC_Config_Get(ARC_Config *config, ARC_String *keyname, void **value)
get a value from a given keyname
void(* ARC_ConfigKey_AddFunc)(ARC_Config *config)
external callback to add keys to config
void ARC_Config_SetGroup(ARC_Config *config, ARC_String *groupname)
sets current group in config
void ARC_Config_FileIO(ARC_Config *config, ARC_String *path, uint8_t command)
handles file io for ARC_Config Type
void ARC_Config_Destroy(ARC_Config *config)
destroys ARC_Config type
void(* ARC_ConfigKeyDelete)(ARC_Config *config, ARC_String *string, void *value)
a function to delete a value from a key in ARC_Config
void ARC_Config_AddKey(ARC_Config *config, ARC_String *type, ARC_ConfigKeyRead keyRead, ARC_ConfigKeyDelete keyDelete)
adds a usable key to ARC_Config
substring position within a string