summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-12-11 09:48:15 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-12-11 09:48:15 +0900
commita0df27d8e04f5d042040c794b79b9b213e7092e0 (patch)
tree4e6a087ab8297a50720ff15bc20c2d1d984db6bb /include
parentf6b2e6231a1c07438915c2d32ab6002c2a2256b9 (diff)
downloadmruby-a0df27d8e04f5d042040c794b79b9b213e7092e0.tar.gz
mruby-a0df27d8e04f5d042040c794b79b9b213e7092e0.zip
Add new API `mrb_iv_foreach()` to iterate over instance variables.
Diffstat (limited to 'include')
-rw-r--r--include/mruby/variable.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/mruby/variable.h b/include/mruby/variable.h
index a0fbca1f9..c031567ea 100644
--- a/include/mruby/variable.h
+++ b/include/mruby/variable.h
@@ -131,6 +131,10 @@ void mrb_gc_mark_iv(mrb_state*, struct RObject*);
size_t mrb_gc_mark_iv_size(mrb_state*, struct RObject*);
void mrb_gc_free_iv(mrb_state*, struct RObject*);
+/* return non zero to break the loop */
+typedef int (iv_foreach_func)(mrb_state*,mrb_sym,mrb_value,void*);
+MRB_API void mrb_iv_foreach(mrb_state *mrb, mrb_value obj, iv_foreach_func *func, void *p);
+
MRB_END_DECL
#endif /* MRUBY_VARIABLE_H */