mruby 3.3.0
mruby is the lightweight implementation of the Ruby language
Loading...
Searching...
No Matches
data.h File Reference

More...

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

Go to the source code of this file.

Classes

struct  mrb_data_type
 Custom C wrapped data. More...
 
struct  RData
 

Macros

#define Data_Wrap_Struct(mrb, klass, type, ptr)
 
#define Data_Make_Struct(mrb, klass, strct, type, sval, data_obj)
 
#define RDATA(obj)
 
#define DATA_PTR(d)
 
#define DATA_TYPE(d)
 
#define DATA_GET_PTR(mrb, obj, dtype, type)
 
#define DATA_CHECK_GET_PTR(mrb, obj, dtype, type)
 
#define mrb_data_check_and_get(mrb, obj, dtype)
 
#define mrb_get_datatype(mrb, val, type)
 
#define mrb_check_datatype(mrb, val, type)
 
#define Data_Get_Struct(mrb, obj, type, sval)
 

Typedefs

typedef struct mrb_data_type mrb_data_type
 Custom C wrapped data.
 

Functions

struct RDatamrb_data_object_alloc (mrb_state *mrb, struct RClass *klass, void *datap, const mrb_data_type *type)
 
void mrb_data_check_type (mrb_state *mrb, mrb_value, const mrb_data_type *)
 
void * mrb_data_get_ptr (mrb_state *mrb, mrb_value, const mrb_data_type *)
 
void * mrb_data_check_get_ptr (mrb_state *mrb, mrb_value, const mrb_data_type *)
 
static void mrb_data_init (mrb_value v, void *ptr, const mrb_data_type *type)
 

Detailed Description

  • Data class

See Copyright Notice in mruby.h

Macro Definition Documentation

◆ DATA_CHECK_GET_PTR

#define DATA_CHECK_GET_PTR ( mrb,
obj,
dtype,
type )
Value:
(type*)mrb_data_check_get_ptr(mrb,obj,dtype)

◆ DATA_GET_PTR

#define DATA_GET_PTR ( mrb,
obj,
dtype,
type )
Value:
(type*)mrb_data_get_ptr(mrb,obj,dtype)

◆ Data_Get_Struct

#define Data_Get_Struct ( mrb,
obj,
type,
sval )
Value:
do {\
*(void**)&sval = mrb_data_get_ptr(mrb, obj, type); \
} while (0)

◆ Data_Make_Struct

#define Data_Make_Struct ( mrb,
klass,
strct,
type,
sval,
data_obj )
Value:
do { \
(data_obj) = Data_Wrap_Struct(mrb,klass,type,NULL);\
(sval) = (strct*)mrb_malloc(mrb, sizeof(strct)); \
{ static const strct zero = { 0 }; *(sval) = zero; };\
(data_obj)->data = (sval);\
} while (0)

◆ DATA_PTR

#define DATA_PTR ( d)
Value:
(RDATA(d)->data)

◆ DATA_TYPE

#define DATA_TYPE ( d)
Value:
(RDATA(d)->type)

◆ Data_Wrap_Struct

#define Data_Wrap_Struct ( mrb,
klass,
type,
ptr )
Value:
mrb_data_object_alloc(mrb,klass,ptr,type)

◆ mrb_check_datatype

#define mrb_check_datatype ( mrb,
val,
type )
Value:
mrb_data_get_ptr(mrb, val, type)

◆ mrb_data_check_and_get

#define mrb_data_check_and_get ( mrb,
obj,
dtype )
Value:
mrb_data_get_ptr(mrb,obj,dtype)

◆ mrb_get_datatype

#define mrb_get_datatype ( mrb,
val,
type )
Value:
mrb_data_get_ptr(mrb, val, type)

◆ RDATA

#define RDATA ( obj)
Value:
((struct RData*)(mrb_ptr(obj)))
Definition data.h:30

Typedef Documentation

◆ mrb_data_type

typedef struct mrb_data_type mrb_data_type

Custom C wrapped data.

Defining Ruby wrappers around native objects. Custom data type description.