void test_is_selector_proc(gconstpointer data) { const gchar *name; grn_obj *object; name = gcut_data_get_string(data, "name"); object = grn_ctx_get(context, name, strlen(name)); if (gcut_data_get_string(data, "expected")) { cut_assert_true(grn_obj_is_selector_proc(context, object)); } else { cut_assert_false(grn_obj_is_selector_proc(context, object)); } }
static mrb_value mrb_grn_procedure_selector_p(mrb_state *mrb, mrb_value self) { grn_ctx *ctx = (grn_ctx *)mrb->ud; grn_obj *proc = DATA_PTR(self); return mrb_bool_value(grn_obj_is_selector_proc(ctx, proc)); }
grn_bool grn_obj_is_selector_only_proc(grn_ctx *ctx, grn_obj *obj) { grn_proc *proc; if (!grn_obj_is_selector_proc(ctx, obj)) { return GRN_FALSE; } proc = (grn_proc *)obj; return proc->funcs[PROC_INIT] == NULL; }