mruby 3.3.0
mruby is the lightweight implementation of the Ruby language
Loading...
Searching...
No Matches
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)
 
#define mrb_hash_value(p)
 
#define RHASH(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)
 
#define MRB_RHASH_PROCDEFAULT_P(hash)
 

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

  • Hash class

See Copyright Notice in mruby.h

Macro Definition Documentation

◆ mrb_hash_ptr

#define mrb_hash_ptr ( v)
Value:
((struct RHash*)(mrb_ptr(v)))
Hash class.
Definition hash.h:18

◆ mrb_hash_value

#define mrb_hash_value ( p)
Value:
mrb_obj_value((void*)(p))

◆ MRB_RHASH_DEFAULT_P

#define MRB_RHASH_DEFAULT_P ( hash)
Value:
(RHASH(hash)->flags & MRB_HASH_DEFAULT)

◆ MRB_RHASH_PROCDEFAULT_P

#define MRB_RHASH_PROCDEFAULT_P ( hash)
Value:
(RHASH(hash)->flags & MRB_HASH_PROC_DEFAULT)

◆ RHASH

#define RHASH ( hash)
Value:
((struct RHash*)(mrb_ptr(hash)))