static mrb_value mrb_vedis_append(mrb_state *mrb, mrb_value self) { vedis *vstore = DATA_PTR(self); mrb_value key_obj, val_obj; mrb_get_args(mrb, "oo", &key_obj, &val_obj); return mrb_vedis_append_s(mrb, key_obj, val_obj, vstore); }
static mrb_value mrb_vedis_append_hash(mrb_state *mrb, mrb_value self) { int ai; vedis *vstore = DATA_PTR(self); mrb_value hash, keys, key, val; mrb_get_args(mrb, "H", &hash); keys = mrb_hash_keys(mrb, hash); ai = mrb_gc_arena_save(mrb); while (!mrb_nil_p(key = mrb_ary_pop(mrb, keys))) { val = mrb_hash_get(mrb, hash, key); mrb_vedis_append_s(mrb, key, val, vstore); mrb_gc_arena_restore(mrb, ai); } return mrb_true_value(); }