From 9f34bd92ec66dc3dda73a2e3f52fc888b90befbb Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Tue, 9 May 2023 13:37:57 -0700 Subject: til_settings: add til_settings_get_count() Getter for accessing til_settings_t.num With recursive settings modules will start using settings instances to represent things like lists of module names. (modules/compose::layers for instance) For those cases they'll want to know the number of settings in the instance before iterating across getting their values positionally. --- src/til_settings.c | 8 ++++++++ src/til_settings.h | 1 + 2 files changed, 9 insertions(+) (limited to 'src') diff --git a/src/til_settings.c b/src/til_settings.c index 0328475..71aefb4 100644 --- a/src/til_settings.c +++ b/src/til_settings.c @@ -199,6 +199,14 @@ til_settings_t * til_settings_free(til_settings_t *settings) } +unsigned til_settings_get_count(const til_settings_t *settings) +{ + assert(settings); + + return settings->num; +} + + /* find key= in settings, return value NULL if missing, optionally store setting @res_setting if found */ const char * til_settings_get_value_by_key(const til_settings_t *settings, const char *key, til_setting_t **res_setting) { diff --git a/src/til_settings.h b/src/til_settings.h index 4cfddf3..a2dacb8 100644 --- a/src/til_settings.h +++ b/src/til_settings.h @@ -43,6 +43,7 @@ struct til_setting_t { til_settings_t * til_settings_new(const char *label, const char *settings); til_settings_t * til_settings_free(til_settings_t *settings); +unsigned til_settings_get_count(const til_settings_t *settings); const char * til_settings_get_value_by_key(const til_settings_t *settings, const char *key, til_setting_t **res_setting); const char * til_settings_get_value_by_idx(const til_settings_t *settings, unsigned idx, til_setting_t **res_setting); til_setting_t * til_settings_add_value(til_settings_t *settings, const char *key, const char *value, const til_setting_desc_t *desc); -- cgit v1.2.3