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

More...

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

Go to the source code of this file.

Classes

struct  RClass
 Class class. More...
 

Macros

#define mrb_class_ptr(v)   ((struct RClass*)(mrb_ptr(v)))
 
#define MRB_FL_CLASS_IS_PREPENDED   (1 << 19)
 
#define MRB_FL_CLASS_IS_ORIGIN   (1 << 18)
 
#define MRB_CLASS_ORIGIN(c)
 
#define MRB_FL_CLASS_IS_INHERITED   (1 << 17)
 
#define MRB_INSTANCE_TT_MASK   (0x1F)
 
#define MRB_SET_INSTANCE_TT(c, tt)   ((c)->flags = (((c)->flags & ~MRB_INSTANCE_TT_MASK) | (char)(tt)))
 
#define MRB_INSTANCE_TT(c)   (enum mrb_vtype)((c)->flags & MRB_INSTANCE_TT_MASK)
 
#define MRB_FL_UNDEF_ALLOCATE   (1 << 6)
 
#define MRB_UNDEF_ALLOCATOR(c)   (mrb_assert((c)->tt == MRB_TT_CLASS), (c)->flags |= MRB_FL_UNDEF_ALLOCATE)
 
#define MRB_UNDEF_ALLOCATOR_P(c)   ((c)->flags & MRB_FL_UNDEF_ALLOCATE)
 
#define MRB_DEFINE_ALLOCATOR(c)   ((c)->flags &= ~MRB_FL_UNDEF_ALLOCATE)
 

Typedefs

typedef int() mrb_mt_foreach_func(mrb_state *, mrb_sym, mrb_method_t, void *)
 

Functions

static struct RClassmrb_class (mrb_state *mrb, mrb_value v)
 
void mrb_define_method_raw (mrb_state *, struct RClass *, mrb_sym, mrb_method_t)
 
void mrb_alias_method (mrb_state *, struct RClass *c, mrb_sym a, mrb_sym b)
 
void mrb_remove_method (mrb_state *mrb, struct RClass *c, mrb_sym sym)
 
mrb_method_t mrb_method_search_vm (mrb_state *, struct RClass **, mrb_sym)
 
mrb_method_t mrb_method_search (mrb_state *, struct RClass *, mrb_sym)
 
struct RClassmrb_class_real (struct RClass *cl)
 
void mrb_mc_clear_by_class (mrb_state *mrb, struct RClass *c)
 
void mrb_mt_foreach (mrb_state *, struct RClass *, mrb_mt_foreach_func *, void *)
 

Detailed Description

See Copyright Notice in mruby.h

Macro Definition Documentation

◆ MRB_CLASS_ORIGIN

#define MRB_CLASS_ORIGIN (   c)
Value:
do {\
if ((c)->flags & MRB_FL_CLASS_IS_PREPENDED) {\
(c) = (c)->super;\
while (!((c)->flags & MRB_FL_CLASS_IS_ORIGIN)) {\
(c) = (c)->super;\
}\
}\
} while (0)