#include <ecoli_node.h>
#include <ecoli_parse.h>
#include <ecoli_complete.h>
-#include <ecoli_keyval.h>
+#include <ecoli_dict.h>
#include <ecoli_config.h>
#include <ecoli_node_any.h>
const struct ec_strvec *strvec)
{
struct ec_node_any *node = (struct ec_node_any *)gen_node;
- const struct ec_keyval *attrs;
+ const struct ec_dict *attrs;
(void)state;
return EC_PARSE_NOMATCH;
if (node->attr_name != NULL) {
attrs = ec_strvec_get_attrs(strvec, 0);
- if (attrs == NULL || !ec_keyval_has_key(attrs, node->attr_name))
+ if (attrs == NULL || !ec_dict_has_key(attrs, node->attr_name))
return EC_PARSE_NOMATCH;
}
EC_NODE_TYPE_REGISTER(ec_node_any_type);
+struct ec_node *
+ec_node_any(const char *id, const char *attr)
+{
+ struct ec_config *config = NULL;
+ struct ec_node *gen_node = NULL;
+ int ret;
+
+ gen_node = ec_node_from_type(&ec_node_any_type, id);
+ if (gen_node == NULL)
+ return NULL;
+
+ config = ec_config_dict();
+ if (config == NULL)
+ goto fail;
+
+ ret = ec_config_dict_set(config, "attr", ec_config_string(attr));
+ if (ret < 0)
+ goto fail;
+
+ ret = ec_node_set_config(gen_node, config);
+ config = NULL;
+ if (ret < 0)
+ goto fail;
+
+ return gen_node;
+
+fail:
+ ec_config_free(config);
+ ec_node_free(gen_node);
+ return NULL;
+}
+
/* LCOV_EXCL_START */
static int ec_node_any_testcase(void)
{