44 const struct yac_param *param,
size_t *count) {
63 if (subname && strcmp(subname,
name) == 0) {
69 ret == 0,
"subparam '%s' not found in param '%s'",
name, self->
name);
81 "idx %zu exceeds subparameter count (%zu) for parameter '%s'",
111 .get_scalar_kind = NULL,
112 .set_scalar_int = NULL,
113 .set_scalar_dble = NULL,
114 .get_scalar_int = NULL,
115 .get_scalar_dble = NULL
121 size_t subparam_count) {
124 YAC_ASSERT((subparam_count == 0) || (subparams != NULL),
"subparams is NULL");
#define YAC_ASSERT(exp, msg)
void yac_param_delete(struct yac_param *param)
int yac_param_is_default(const struct yac_param *param)
Check whether a parameter is at its default value.
const char * yac_param_get_name(const struct yac_param *param)
Get the name of the current parameter.
yac_param_type
Parameter type for generic configuration interface.
@ YAC_PARAM_TYPE_STRUCT
Named, fixed set of subparameters.
#define YAC_PARAM_ASSERT(COND,...)
static int yac_param_struct_get_sub_count(const struct yac_param *param, size_t *count)
static void yac_param_struct_delete(struct yac_param *param)
static const struct yac_param_vtable yac_param_struct_vtable
struct yac_param * yac_param_struct_new(const char *name, struct yac_param **subparams, size_t subparam_count)
Create a new struct parameter with a given name and subparameters.
static enum yac_param_type yac_param_struct_get_type(const struct yac_param *param)
static int yac_param_struct_get_sub_by_name(const struct yac_param *param, const char *name, struct yac_param **sub_param)
static int yac_param_struct_is_default(const struct yac_param *param)
static const char * yac_param_struct_get_name(const struct yac_param *param)
static int yac_param_struct_get_sub_by_index(struct yac_param *param, size_t idx, struct yac_param **sub_param)
const struct yac_param_vtable * vtable
struct yac_param ** subparams
enum yac_param_type(* get_type)(const struct yac_param *param)