mruby 3.3.0
mruby is the lightweight implementation of the Ruby language
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions
hash.h File Reference

More...

#include "common.h"
Include dependency graph for hash.h:

Go to the source code of this file.

Classes

struct  RHash
 Hash class. More...
 

Macros

#define mrb_hash_ptr(v)   ((struct RHash*)(mrb_ptr(v)))
 
#define mrb_hash_value(p)   mrb_obj_value((void*)(p))
 
#define RHASH(hash)   ((struct RHash*)(mrb_ptr(hash)))
 
#define MRB_HASH_IB_BIT_BIT   5
 
#define MRB_HASH_AR_EA_CAPA_BIT   5
 
#define MRB_HASH_IB_BIT_SHIFT   0
 
#define MRB_HASH_AR_EA_CAPA_SHIFT   0
 
#define MRB_HASH_AR_EA_N_USED_SHIFT   MRB_HASH_AR_EA_CAPA_BIT
 
#define MRB_HASH_SIZE_FLAGS_SHIFT   (MRB_HASH_AR_EA_CAPA_BIT * 2)
 
#define MRB_HASH_IB_BIT_MASK   ((1 << MRB_HASH_IB_BIT_BIT) - 1)
 
#define MRB_HASH_AR_EA_CAPA_MASK   ((1 << MRB_HASH_AR_EA_CAPA_BIT) - 1)
 
#define MRB_HASH_AR_EA_N_USED_MASK   (MRB_HASH_AR_EA_CAPA_MASK << MRB_HASH_AR_EA_N_USED_SHIFT)
 
#define MRB_HASH_DEFAULT   (1 << (MRB_HASH_SIZE_FLAGS_SHIFT + 0))
 
#define MRB_HASH_PROC_DEFAULT   (1 << (MRB_HASH_SIZE_FLAGS_SHIFT + 1))
 
#define MRB_HASH_HT   (1 << (MRB_HASH_SIZE_FLAGS_SHIFT + 2))
 
#define MRB_RHASH_DEFAULT_P(hash)   (RHASH(hash)->flags & MRB_HASH_DEFAULT)
 
#define MRB_RHASH_PROCDEFAULT_P(hash)   (RHASH(hash)->flags & MRB_HASH_PROC_DEFAULT)
 

Typedefs

typedef int() mrb_hash_foreach_func(mrb_state *mrb, mrb_value key, mrb_value val, void *data)
 

Functions

mrb_value mrb_hash_new_capa (mrb_state *mrb, mrb_int capa)
 
mrb_value mrb_hash_new (mrb_state *mrb)
 
void mrb_hash_set (mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value val)
 
mrb_value mrb_hash_get (mrb_state *mrb, mrb_value hash, mrb_value key)
 
mrb_value mrb_hash_fetch (mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value def)
 
mrb_value mrb_hash_delete_key (mrb_state *mrb, mrb_value hash, mrb_value key)
 
mrb_value mrb_hash_keys (mrb_state *mrb, mrb_value hash)
 
mrb_bool mrb_hash_key_p (mrb_state *mrb, mrb_value hash, mrb_value key)
 
mrb_bool mrb_hash_empty_p (mrb_state *mrb, mrb_value self)
 
mrb_value mrb_hash_values (mrb_state *mrb, mrb_value hash)
 
mrb_value mrb_hash_clear (mrb_state *mrb, mrb_value hash)
 
mrb_int mrb_hash_size (mrb_state *mrb, mrb_value hash)
 
mrb_value mrb_hash_dup (mrb_state *mrb, mrb_value hash)
 
void mrb_hash_merge (mrb_state *mrb, mrb_value hash1, mrb_value hash2)
 
void mrb_hash_foreach (mrb_state *mrb, struct RHash *hash, mrb_hash_foreach_func *func, void *p)
 

Detailed Description

See Copyright Notice in mruby.h