1#ifndef RBIMPL_INTERN_ENUMERATOR_H
2#define RBIMPL_INTERN_ENUMERATOR_H
50# define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn) \
51 rb_enumeratorize_with_size(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn))
52# define rb_enumeratorize_with_size_kw(obj, id, argc, argv, size_fn, kw_splat) \
53 rb_enumeratorize_with_size_kw(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn), kw_splat)
56#define SIZED_ENUMERATOR(obj, argc, argv, size_fn) \
57 rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \
58 (argc), (argv), (size_fn))
60#define SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) \
61 rb_enumeratorize_with_size_kw((obj), ID2SYM(rb_frame_this_func()), \
62 (argc), (argv), (size_fn), (kw_splat))
64#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do { \
65 if (!rb_block_given_p()) \
66 return SIZED_ENUMERATOR(obj, argc, argv, size_fn); \
69#define RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) do { \
70 if (!rb_block_given_p()) \
71 return SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat); \
74#define RETURN_ENUMERATOR(obj, argc, argv) \
75 RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0)
77#define RETURN_ENUMERATOR_KW(obj, argc, argv, kw_splat) \
78 RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, 0, kw_splat)
Tewaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
VALUE rb_enumeratorize(VALUE, VALUE, int, const VALUE *)
#define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn)
VALUE rb_arithmetic_sequence_beg_len_step(VALUE, long *begp, long *lenp, long *stepp, long len, int err)
VALUE rb_enumerator_size_func(VALUE, VALUE, VALUE)
int rb_arithmetic_sequence_extract(VALUE, rb_arithmetic_sequence_components_t *)
#define rb_enumeratorize_with_size_kw(obj, id, argc, argv, size_fn, kw_splat)
Pre-1.9 era evaluator APIs (now considered miscellaneous).