Files
ivy/common/include/ivy/selector.h

35 lines
830 B
C

#ifndef IVY_SELECTOR_H_
#define IVY_SELECTOR_H_
#include <ivy/status.h>
#include <blue/core/queue.h>
enum ivy_selector_recipient {
IVY_SEL_NONE = 0,
IVY_SEL_CLASS,
IVY_SEL_OBJECT,
};
struct ivy_selector {
enum ivy_selector_recipient sel_recipient;
char *sel_name;
b_queue sel_args;
};
struct ivy_selector_arg {
char *arg_label;
char *arg_name;
b_queue_entry arg_entry;
};
IVY_API enum ivy_status ivy_selector_create(struct ivy_selector **sel);
IVY_API void ivy_selector_destroy(struct ivy_selector *sel);
IVY_API void ivy_selector_set_recipient(
struct ivy_selector *sel, enum ivy_selector_recipient r);
IVY_API enum ivy_status ivy_selector_set_name(struct ivy_selector *sel, const char *name);
IVY_API enum ivy_status ivy_selector_add_arg(
struct ivy_selector *sel, const char *label, const char *name);
#endif