return value;
}
+ssize_t ec_config_count(const struct ec_config *config)
+{
+ const struct ec_config *child;
+ ssize_t n;
+
+ switch (config->type) {
+ case EC_CONFIG_TYPE_LIST:
+ n = 0;
+ TAILQ_FOREACH(child, &config->list, next)
+ n++;
+ return n;
+ case EC_CONFIG_TYPE_DICT:
+ // XXX todo
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+}
+
const struct ec_config_schema *
ec_config_schema_lookup(const struct ec_config_schema *schema,
const char *key)
*/
int ec_config_list_del(struct ec_config *list, struct ec_config *config);
+/**
+ * Count the number of elements in a list or dict.
+ *
+ * @param config
+ * The configuration that must be a list or a dict.
+ * @return
+ * The number of elements, or -1 on error (errno is set).
+ */
+ssize_t ec_config_count(const struct ec_config *config);
+
/**
* Validate a configuration.
*