1 #ifndef RBIMPL_RSTRUCT_H
2 #define RBIMPL_RSTRUCT_H
30 #if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
31 # include "ruby/backward.h"
45 #define RSTRUCT_PTR(st) rb_struct_ptr(st)
47 #define RSTRUCT_LEN RSTRUCT_LEN
48 #define RSTRUCT_SET RSTRUCT_SET
49 #define RSTRUCT_GET RSTRUCT_GET
Defines RBIMPL_ATTR_ARTIFICIAL.
#define RBIMPL_ATTR_ARTIFICIAL()
Wraps (or simulates) __attribute__((artificial))
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
#define INT2NUM
Old name of RB_INT2NUM.
Arithmetic conversion between C's int and Ruby's.
Arithmetic conversion between C's long and Ruby's.
#define RB_NUM2LONG
Just another name of rb_num2long_inline.
#define inline
Old Visual Studio versions do not support the inline keyword, so we need to define it to be __inline.
static long RSTRUCT_LEN(VALUE st)
Returns the number of struct members.
static VALUE RSTRUCT_SET(VALUE st, int k, VALUE v)
Resembles Struct#[]=.
static VALUE RSTRUCT_GET(VALUE st, int k)
Resembles Struct#[].
VALUE rb_struct_aset(VALUE st, VALUE k, VALUE v)
Resembles Struct#[]=.
VALUE rb_struct_size(VALUE st)
Returns the number of struct members.
VALUE rb_struct_aref(VALUE st, VALUE k)
Resembles Struct#[].
uintptr_t VALUE
Type that represents a Ruby object.
Defines enum ruby_value_type.