enumerator.c File Reference

#include "ruby/ruby.h"
#include "node.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  enumerator
struct  generator
struct  yielder

Defines

#define enumerator_free   RUBY_TYPED_DEFAULT_FREE
#define yielder_free   RUBY_TYPED_DEFAULT_FREE
#define generator_free   RUBY_TYPED_DEFAULT_FREE

Functions

static VALUE generator_allocate (VALUE klass)
static VALUE generator_init (VALUE obj, VALUE proc)
static void enumerator_mark (void *p)
static size_t enumerator_memsize (const void *p)
static struct enumeratorenumerator_ptr (VALUE obj)
static VALUE obj_to_enum (int argc, VALUE *argv, VALUE obj)
static VALUE enumerator_allocate (VALUE klass)
static VALUE enumerator_init (VALUE enum_obj, VALUE obj, VALUE meth, int argc, VALUE *argv, rb_enumerator_size_func *size_fn, VALUE size)
static VALUE enumerator_initialize (int argc, VALUE *argv, VALUE obj)
static VALUE enumerator_init_copy (VALUE obj, VALUE orig)
VALUE rb_enumeratorize (VALUE obj, VALUE meth, int argc, VALUE *argv)
static VALUE lazy_to_enum_i (VALUE self, VALUE meth, int argc, VALUE *argv, rb_enumerator_size_func *size_fn)
VALUE rb_enumeratorize_with_size (VALUE obj, VALUE meth, int argc, VALUE *argv, rb_enumerator_size_func *size_fn)
static VALUE enumerator_block_call (VALUE obj, rb_block_call_func *func, VALUE arg)
static VALUE enumerator_each (int argc, VALUE *argv, VALUE obj)
static VALUE enumerator_with_index_i (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE enumerator_size (VALUE obj)
static VALUE enumerator_enum_size (VALUE obj, VALUE args, VALUE eobj)
static VALUE enumerator_with_index (int argc, VALUE *argv, VALUE obj)
static VALUE enumerator_each_with_index (VALUE obj)
static VALUE enumerator_with_object_i (RB_BLOCK_CALL_FUNC_ARGLIST(val, memo))
static VALUE enumerator_with_object (VALUE obj, VALUE memo)
static VALUE next_ii (RB_BLOCK_CALL_FUNC_ARGLIST(i, obj))
static VALUE next_i (VALUE curr, VALUE obj)
static void next_init (VALUE obj, struct enumerator *e)
static VALUE get_next_values (VALUE obj, struct enumerator *e)
static VALUE enumerator_next_values (VALUE obj)
static VALUE ary2sv (VALUE args, int dup)
static VALUE enumerator_next (VALUE obj)
static VALUE enumerator_peek_values (VALUE obj)
static VALUE enumerator_peek_values_m (VALUE obj)
static VALUE enumerator_peek (VALUE obj)
static VALUE enumerator_feed (VALUE obj, VALUE v)
static VALUE enumerator_rewind (VALUE obj)
static VALUE append_method (VALUE obj, VALUE str, ID default_method, VALUE default_args)
static VALUE inspect_enumerator (VALUE obj, VALUE dummy, int recur)
static VALUE enumerator_inspect (VALUE obj)
static void yielder_mark (void *p)
static size_t yielder_memsize (const void *p)
static struct yielderyielder_ptr (VALUE obj)
static VALUE yielder_allocate (VALUE klass)
static VALUE yielder_init (VALUE obj, VALUE proc)
static VALUE yielder_initialize (VALUE obj)
static VALUE yielder_yield (VALUE obj, VALUE args)
static VALUE yielder_yield_push (VALUE obj, VALUE args)
static VALUE yielder_yield_i (RB_BLOCK_CALL_FUNC_ARGLIST(obj, memo))
static VALUE yielder_new (void)
static void generator_mark (void *p)
static size_t generator_memsize (const void *p)
static struct generatorgenerator_ptr (VALUE obj)
static VALUE generator_initialize (int argc, VALUE *argv, VALUE obj)
static VALUE generator_init_copy (VALUE obj, VALUE orig)
static VALUE generator_each (int argc, VALUE *argv, VALUE obj)
static VALUE enum_size (VALUE self)
static VALUE lazyenum_size (VALUE self, VALUE args, VALUE eobj)
static VALUE lazy_size (VALUE self)
static VALUE lazy_receiver_size (VALUE generator, VALUE args, VALUE lazy)
static VALUE lazy_init_iterator (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_init_block_i (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_initialize (int argc, VALUE *argv, VALUE self)
static VALUE lazy_set_method (VALUE lazy, VALUE args, rb_enumerator_size_func *size_fn)
static VALUE enumerable_lazy (VALUE obj)
static VALUE lazy_to_enum (int argc, VALUE *argv, VALUE self)
static VALUE lazy_map_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_map (VALUE obj)
static VALUE lazy_flat_map_i (RB_BLOCK_CALL_FUNC_ARGLIST(i, yielder))
static VALUE lazy_flat_map_each (VALUE obj, VALUE yielder)
static VALUE lazy_flat_map_to_ary (VALUE obj, VALUE yielder)
static VALUE lazy_flat_map_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_flat_map (VALUE obj)
static VALUE lazy_select_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_select (VALUE obj)
static VALUE lazy_reject_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_reject (VALUE obj)
static VALUE lazy_grep_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_grep_iter (RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
static VALUE lazy_grep (VALUE obj, VALUE pattern)
static VALUE call_next (VALUE obj)
static VALUE next_stopped (VALUE obj)
static VALUE lazy_zip_arrays_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, arrays))
static VALUE lazy_zip_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, zip_args))
static VALUE lazy_zip (int argc, VALUE *argv, VALUE obj)
static VALUE lazy_take_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, args))
static VALUE lazy_take_size (VALUE generator, VALUE args, VALUE lazy)
static VALUE lazy_take (VALUE obj, VALUE n)
static VALUE lazy_take_while_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, args))
static VALUE lazy_take_while (VALUE obj)
static VALUE lazy_drop_size (VALUE generator, VALUE args, VALUE lazy)
static VALUE lazy_drop_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, args))
static VALUE lazy_drop (VALUE obj, VALUE n)
static VALUE lazy_drop_while_func (RB_BLOCK_CALL_FUNC_ARGLIST(val, args))
static VALUE lazy_drop_while (VALUE obj)
static VALUE lazy_super (int argc, VALUE *argv, VALUE lazy)
static VALUE lazy_lazy (VALUE obj)
static VALUE stop_result (VALUE self)
void InitVM_Enumerator (void)
void Init_Enumerator (void)

Variables

VALUE rb_cEnumerator
VALUE rb_cLazy
static ID id_rewind
static ID id_each
static ID id_new
static ID id_initialize
static ID id_yield
static ID id_call
static ID id_size
static ID id_to_enum
static ID id_eqq
static ID id_next
static ID id_result
static ID id_lazy
static ID id_receiver
static ID id_arguments
static ID id_memo
static ID id_method
static ID id_force
static VALUE sym_each
static VALUE sym_cycle
VALUE rb_eStopIteration
static VALUE rb_cGenerator
static VALUE rb_cYielder
static const rb_data_type_t enumerator_data_type
static const rb_data_type_t yielder_data_type
static const rb_data_type_t generator_data_type

Define Documentation

#define enumerator_free   RUBY_TYPED_DEFAULT_FREE

Definition at line 156 of file enumerator.c.

#define generator_free   RUBY_TYPED_DEFAULT_FREE

Definition at line 1171 of file enumerator.c.

#define yielder_free   RUBY_TYPED_DEFAULT_FREE

Definition at line 1065 of file enumerator.c.


Function Documentation

static VALUE append_method ( VALUE  obj,
VALUE  str,
ID  default_method,
VALUE  default_args 
) [static]
static VALUE ary2sv ( VALUE  args,
int  dup 
) [static]

Definition at line 730 of file enumerator.c.

References Qnil, RARRAY_AREF, RARRAY_LEN, rb_ary_dup(), RB_TYPE_P, and T_ARRAY.

Referenced by enumerator_next(), and enumerator_peek().

static VALUE call_next ( VALUE  obj  )  [static]

Definition at line 1693 of file enumerator.c.

References id_next, and rb_funcall().

Referenced by lazy_zip_func().

static VALUE enum_size ( VALUE  self  )  [static]

Definition at line 1296 of file enumerator.c.

References id_size, Qnil, Qundef, and rb_check_funcall().

Referenced by lazy_size(), and lazyenum_size().

static VALUE enumerable_lazy ( VALUE  obj  )  [static]

Definition at line 1452 of file enumerator.c.

References id_method, lazy_to_enum_i(), lazyenum_size(), Qfalse, rb_ivar_set(), result, and sym_each.

Referenced by InitVM_Enumerator(), and lazy_super().

static VALUE enumerator_allocate ( VALUE  klass  )  [static]
static VALUE enumerator_block_call ( VALUE  obj,
rb_block_call_func *  func,
VALUE  arg 
) [static]
static VALUE enumerator_each ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
static VALUE enumerator_each_with_index ( VALUE  obj  )  [static]

Definition at line 554 of file enumerator.c.

References enumerator_with_index(), and NULL.

Referenced by InitVM_Enumerator().

static VALUE enumerator_enum_size ( VALUE  obj,
VALUE  args,
VALUE  eobj 
) [static]

Definition at line 512 of file enumerator.c.

References enumerator_size().

Referenced by enumerator_with_index(), and enumerator_with_object().

static VALUE enumerator_feed ( VALUE  obj,
VALUE  v 
) [static]

Definition at line 899 of file enumerator.c.

References enumerator_ptr(), enumerator::feedvalue, Qnil, Qundef, rb_eTypeError, and rb_raise().

Referenced by InitVM_Enumerator().

static VALUE enumerator_init ( VALUE  enum_obj,
VALUE  obj,
VALUE  meth,
int  argc,
VALUE *  argv,
rb_enumerator_size_func *  size_fn,
VALUE  size 
) [static]
static VALUE enumerator_init_copy ( VALUE  obj,
VALUE  orig 
) [static]
static VALUE enumerator_initialize ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
static VALUE enumerator_inspect ( VALUE  obj  )  [static]

Definition at line 1019 of file enumerator.c.

References inspect_enumerator(), and rb_exec_recursive().

Referenced by InitVM_Enumerator().

static void enumerator_mark ( void *  p  )  [static]
static size_t enumerator_memsize ( const void *  p  )  [static]

Definition at line 159 of file enumerator.c.

static VALUE enumerator_next ( VALUE  obj  )  [static]

Definition at line 772 of file enumerator.c.

References ary2sv(), and enumerator_next_values().

Referenced by InitVM_Enumerator().

static VALUE enumerator_next_values ( VALUE  obj  )  [static]

Definition at line 715 of file enumerator.c.

References enumerator_ptr(), get_next_values(), enumerator::lookahead, and Qundef.

Referenced by enumerator_next(), and InitVM_Enumerator().

static VALUE enumerator_peek ( VALUE  obj  )  [static]

Definition at line 846 of file enumerator.c.

References ary2sv(), and enumerator_peek_values().

Referenced by InitVM_Enumerator().

static VALUE enumerator_peek_values ( VALUE  obj  )  [static]
static VALUE enumerator_peek_values_m ( VALUE  obj  )  [static]

Definition at line 818 of file enumerator.c.

References enumerator_peek_values(), and rb_ary_dup().

Referenced by InitVM_Enumerator().

static struct enumerator* enumerator_ptr ( VALUE  obj  )  [static, read]
static VALUE enumerator_rewind ( VALUE  obj  )  [static]
static VALUE enumerator_size ( VALUE  obj  )  [static]
static VALUE enumerator_with_index ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
static VALUE enumerator_with_index_i ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]
static VALUE enumerator_with_object ( VALUE  obj,
VALUE  memo 
) [static]
static VALUE enumerator_with_object_i ( RB_BLOCK_CALL_FUNC_ARGLIST(val, memo)   )  [static]

Definition at line 560 of file enumerator.c.

References argc, argv, rb_ary_new4, RB_BLOCK_CALL_FUNC_ARGLIST, rb_yield_values(), and val.

Referenced by enumerator_with_object().

static VALUE generator_allocate ( VALUE  klass  )  [static]
static VALUE generator_each ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
static VALUE generator_init ( VALUE  obj,
VALUE  proc 
) [static]
static VALUE generator_init_copy ( VALUE  obj,
VALUE  orig 
) [static]
static VALUE generator_initialize ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
static void generator_mark ( void *  p  )  [static]

Definition at line 1165 of file enumerator.c.

References generator::proc, and rb_gc_mark().

static size_t generator_memsize ( const void *  p  )  [static]

Definition at line 1174 of file enumerator.c.

static struct generator* generator_ptr ( VALUE  obj  )  [static, read]
static VALUE get_next_values ( VALUE  obj,
struct enumerator e 
) [static]
void Init_Enumerator ( void   ) 
void InitVM_Enumerator ( void   ) 
static VALUE inspect_enumerator ( VALUE  obj,
VALUE  dummy,
int  recur 
) [static]
static VALUE lazy_drop ( VALUE  obj,
VALUE  n 
) [static]
static VALUE lazy_drop_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, args  )  [static]
static VALUE lazy_drop_size ( VALUE  generator,
VALUE  args,
VALUE  lazy 
) [static]
static VALUE lazy_drop_while ( VALUE  obj  )  [static]
static VALUE lazy_drop_while_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, args  )  [static]
static VALUE lazy_flat_map ( VALUE  obj  )  [static]
static VALUE lazy_flat_map_each ( VALUE  obj,
VALUE  yielder 
) [static]

Definition at line 1534 of file enumerator.c.

References id_each, lazy_flat_map_i(), Qnil, and rb_block_call().

Referenced by lazy_flat_map_func().

static VALUE lazy_flat_map_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]
static VALUE lazy_flat_map_i ( RB_BLOCK_CALL_FUNC_ARGLIST(i, yielder  )  [static]

Definition at line 1528 of file enumerator.c.

References argc, argv, id_yield, RB_BLOCK_CALL_FUNC_ARGLIST, and rb_funcall2.

Referenced by lazy_flat_map_each().

static VALUE lazy_flat_map_to_ary ( VALUE  obj,
VALUE  yielder 
) [static]

Definition at line 1541 of file enumerator.c.

References id_yield, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_check_array_type(), and rb_funcall().

Referenced by lazy_flat_map_func().

static VALUE lazy_grep ( VALUE  obj,
VALUE  pattern 
) [static]
static VALUE lazy_grep_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]

Definition at line 1659 of file enumerator.c.

References argc, argv, id_eqq, id_yield, Qnil, RB_BLOCK_CALL_FUNC_ARGLIST, rb_enum_values_pack(), rb_funcall(), result, and RTEST.

Referenced by lazy_grep().

static VALUE lazy_grep_iter ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]
static VALUE lazy_init_block_i ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]

Definition at line 1347 of file enumerator.c.

References argc, argv, id_each, lazy_init_iterator(), Qnil, rb_block_call(), RB_BLOCK_CALL_FUNC_ARGLIST, and val.

Referenced by lazy_initialize().

static VALUE lazy_init_iterator ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]
static VALUE lazy_initialize ( int  argc,
VALUE *  argv,
VALUE  self 
) [static]
static VALUE lazy_lazy ( VALUE  obj  )  [static]

Definition at line 1933 of file enumerator.c.

Referenced by InitVM_Enumerator().

static VALUE lazy_map ( VALUE  obj  )  [static]
static VALUE lazy_map_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]

Definition at line 1507 of file enumerator.c.

References argc, argv, id_yield, Qnil, RB_BLOCK_CALL_FUNC_ARGLIST, rb_funcall(), rb_yield_values2(), and result.

Referenced by lazy_map().

static VALUE lazy_receiver_size ( VALUE  generator,
VALUE  args,
VALUE  lazy 
) [static]

Definition at line 1315 of file enumerator.c.

References lazy_size().

Referenced by lazy_map(), and lazy_zip().

static VALUE lazy_reject ( VALUE  obj  )  [static]
static VALUE lazy_reject_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]
static VALUE lazy_select ( VALUE  obj  )  [static]
static VALUE lazy_select_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, m)   )  [static]
static VALUE lazy_set_method ( VALUE  lazy,
VALUE  args,
rb_enumerator_size_func *  size_fn 
) [static]
static VALUE lazy_size ( VALUE  self  )  [static]

Definition at line 1309 of file enumerator.c.

References enum_size(), id_receiver, and rb_ivar_get().

Referenced by lazy_drop_size(), lazy_receiver_size(), and lazy_take_size().

static VALUE lazy_super ( int  argc,
VALUE *  argv,
VALUE  lazy 
) [static]

Definition at line 1927 of file enumerator.c.

References enumerable_lazy(), and rb_call_super().

Referenced by InitVM_Enumerator().

static VALUE lazy_take ( VALUE  obj,
VALUE  n 
) [static]
static VALUE lazy_take_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, args  )  [static]
static VALUE lazy_take_size ( VALUE  generator,
VALUE  args,
VALUE  lazy 
) [static]

Definition at line 1809 of file enumerator.c.

References FIX2LONG, FIXNUM_P, id_arguments, lazy_size(), LONG2NUM, NIL_P, NUM2LONG, RARRAY_AREF, and rb_ivar_get().

Referenced by lazy_take().

static VALUE lazy_take_while ( VALUE  obj  )  [static]
static VALUE lazy_take_while_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, args  )  [static]
static VALUE lazy_to_enum ( int  argc,
VALUE *  argv,
VALUE  self 
) [static]
static VALUE lazy_to_enum_i ( VALUE  self,
VALUE  meth,
int  argc,
VALUE *  argv,
rb_enumerator_size_func *  size_fn 
) [static]
static VALUE lazy_zip ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
static VALUE lazy_zip_arrays_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, arrays)   )  [static]
static VALUE lazy_zip_func ( RB_BLOCK_CALL_FUNC_ARGLIST(val, zip_args)   )  [static]
static VALUE lazyenum_size ( VALUE  self,
VALUE  args,
VALUE  eobj 
) [static]

Definition at line 1303 of file enumerator.c.

References enum_size().

Referenced by enumerable_lazy().

static VALUE next_i ( VALUE  curr,
VALUE  obj 
) [static]
static VALUE next_ii ( RB_BLOCK_CALL_FUNC_ARGLIST(i, obj)   )  [static]
static void next_init ( VALUE  obj,
struct enumerator e 
) [static]
static VALUE next_stopped ( VALUE  obj  )  [static]

Definition at line 1699 of file enumerator.c.

References Qnil.

Referenced by lazy_zip_func().

static VALUE obj_to_enum ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]
VALUE rb_enumeratorize ( VALUE  obj,
VALUE  meth,
int  argc,
VALUE *  argv 
)
VALUE rb_enumeratorize_with_size ( VALUE  obj,
VALUE  meth,
int  argc,
VALUE *  argv,
rb_enumerator_size_func *  size_fn 
)
static VALUE stop_result ( VALUE  self  )  [static]

Definition at line 1986 of file enumerator.c.

References id_result, and rb_attr_get().

Referenced by InitVM_Enumerator().

static VALUE yielder_allocate ( VALUE  klass  )  [static]

Definition at line 1097 of file enumerator.c.

References yielder::proc, Qundef, TypedData_Make_Struct, and yielder_data_type.

Referenced by InitVM_Enumerator(), and yielder_new().

static VALUE yielder_init ( VALUE  obj,
VALUE  proc 
) [static]
static VALUE yielder_initialize ( VALUE  obj  )  [static]

Definition at line 1126 of file enumerator.c.

References rb_block_proc(), rb_need_block(), and yielder_init().

Referenced by InitVM_Enumerator().

static void yielder_mark ( void *  p  )  [static]

Definition at line 1059 of file enumerator.c.

References yielder::proc, and rb_gc_mark().

static size_t yielder_memsize ( const void *  p  )  [static]

Definition at line 1068 of file enumerator.c.

static VALUE yielder_new ( void   )  [static]

Definition at line 1156 of file enumerator.c.

References rb_cYielder, rb_proc_new(), yielder_allocate(), yielder_init(), and yielder_yield_i().

Referenced by generator_each().

static struct yielder* yielder_ptr ( VALUE  obj  )  [static, read]

Definition at line 1084 of file enumerator.c.

References yielder::proc, Qundef, rb_eArgError, rb_raise(), TypedData_Get_Struct, and yielder_data_type.

Referenced by yielder_yield().

static VALUE yielder_yield ( VALUE  obj,
VALUE  args 
) [static]

Definition at line 1135 of file enumerator.c.

References yielder::proc, rb_proc_call(), and yielder_ptr().

Referenced by InitVM_Enumerator(), and yielder_yield_push().

static VALUE yielder_yield_i ( RB_BLOCK_CALL_FUNC_ARGLIST(obj, memo)   )  [static]

Definition at line 1150 of file enumerator.c.

References argc, argv, RB_BLOCK_CALL_FUNC_ARGLIST, and rb_yield_values2().

Referenced by yielder_new().

static VALUE yielder_yield_push ( VALUE  obj,
VALUE  args 
) [static]

Definition at line 1143 of file enumerator.c.

References yielder_yield().

Referenced by InitVM_Enumerator().


Variable Documentation

const rb_data_type_t enumerator_data_type [static]
const rb_data_type_t generator_data_type [static]
ID id_arguments [static]
ID id_call [static]

Definition at line 107 of file enumerator.c.

Referenced by enumerator_initialize(), enumerator_size(), and Init_Enumerator().

ID id_each [static]

Definition at line 107 of file enumerator.c.

ID id_eqq [static]

Definition at line 108 of file enumerator.c.

ID id_force [static]

Definition at line 108 of file enumerator.c.

Referenced by Init_Enumerator(), and lazy_flat_map_func().

ID id_initialize [static]

Definition at line 107 of file enumerator.c.

Referenced by Init_Enumerator(), and lazy_initialize().

ID id_lazy [static]

Definition at line 108 of file enumerator.c.

Referenced by Init_Enumerator().

ID id_memo [static]
ID id_method [static]

Definition at line 108 of file enumerator.c.

Referenced by append_method(), enumerable_lazy(), Init_Enumerator(), and lazy_set_method().

ID id_new [static]
ID id_next [static]

Definition at line 108 of file enumerator.c.

Referenced by call_next(), and Init_Enumerator().

ID id_receiver [static]

Definition at line 108 of file enumerator.c.

Referenced by Init_Enumerator(), inspect_enumerator(), lazy_initialize(), and lazy_size().

ID id_result [static]

Definition at line 108 of file enumerator.c.

Referenced by Init_Enumerator(), next_i(), and stop_result().

ID id_rewind [static]

Definition at line 107 of file enumerator.c.

Referenced by enumerator_rewind(), and Init_Enumerator().

ID id_size [static]

Definition at line 107 of file enumerator.c.

Referenced by enum_size(), and Init_Enumerator().

ID id_to_enum [static]

Definition at line 107 of file enumerator.c.

Referenced by Init_Enumerator(), and lazy_zip_func().

ID id_yield [static]
VALUE rb_cGenerator [static]

Definition at line 126 of file enumerator.c.

Referenced by enumerator_initialize(), InitVM_Enumerator(), and lazy_initialize().

VALUE rb_cLazy
VALUE rb_cYielder [static]

Definition at line 126 of file enumerator.c.

Referenced by InitVM_Enumerator(), and yielder_new().

Definition at line 111 of file enumerator.c.

Referenced by InitVM_Enumerator(), lazy_zip_func(), next_i(), rb_f_loop(), and zip_i().

VALUE sym_cycle [static]

Definition at line 109 of file enumerator.c.

Referenced by Init_Enumerator(), and lazy_take().

VALUE sym_each [static]
const rb_data_type_t yielder_data_type [static]
Initial value:

Definition at line 1073 of file enumerator.c.

Referenced by yielder_allocate(), yielder_init(), and yielder_ptr().


Generated on 18 May 2020 for Ruby by  doxygen 1.6.1