Sha256: a6756474767f99e099c4ca8b490ddd1d45136b5f94b765c4b85aec3075045540

Contents?: true

Size: 666 Bytes

Versions: 8

Compression:

Stored size: 666 Bytes

Contents

/*
** enum.c - Enumerable module
**
** See Copyright Notice in mruby.h
*/

#include <mruby.h>
#include <mruby/proc.h>

/* internal method `__update_hash(oldhash, index, itemhash)` */
static mrb_value
enum_update_hash(mrb_state *mrb, mrb_value self)
{
  mrb_int hash;
  mrb_int index;
  mrb_int hv;

  mrb_get_args(mrb, "iii", &hash, &index, &hv);
  hash ^= ((uint32_t)hv << (index % 16));

  return mrb_fixnum_value(hash);
}

void
mrb_init_enumerable(mrb_state *mrb)
{
  struct RClass *enumerable;
  enumerable = mrb_define_module(mrb, "Enumerable");  /* 15.3.2 */
  mrb_define_module_function(mrb, enumerable, "__update_hash", enum_update_hash, MRB_ARGS_REQ(3));
}

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
script_core-0.2.7 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.6 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.5 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.4 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.3 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.2 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.1 ext/enterprise_script_service/mruby/src/enum.c
script_core-0.2.0 ext/enterprise_script_service/mruby/src/enum.c