ruby_sys/
class.rs

1use types::{Argc, c_char, c_int, CallbackPtr, Id, Value};
2
3extern "C" {
4    pub fn rb_class_new_instance(argc: Argc, argv: *const Value, klass: Value) -> Value;
5    pub fn rb_class_superclass(klass: Value) -> Value;
6    pub fn rb_const_get(klass: Value, name: Id) -> Value;
7    pub fn rb_define_attr(klass: Value, name: *const c_char, read: c_int, write: c_int);
8    pub fn rb_define_class(name: *const c_char, superclass: Value) -> Value;
9    pub fn rb_define_class_under(outer: Value, name: *const c_char, superclass: Value) -> Value;
10    pub fn rb_define_const(klass: Value, name: *const c_char, value: Value);
11    pub fn rb_define_method(klass: Value, name: *const c_char, callback: CallbackPtr, argc: Argc);
12    pub fn rb_define_module(name: *const c_char) -> Value;
13    pub fn rb_define_module_under(outer: Value, name: *const c_char) -> Value;
14    pub fn rb_extend_object(object: Value, module: Value);
15    pub fn rb_include_module(klass: Value, module: Value);
16    pub fn rb_ivar_get(object: Value, name: Id) -> Value;
17    pub fn rb_ivar_set(object: Value, name: Id, value: Value) -> Value;
18    pub fn rb_mod_ancestors(module: Value) -> Value;
19    pub fn rb_obj_class(object: Value) -> Value;
20    pub fn rb_obj_freeze(object: Value) -> Value;
21    pub fn rb_obj_frozen_p(object: Value) -> Value;
22    pub fn rb_prepend_module(klass: Value, module: Value);
23    pub fn rb_respond_to(object: Value, id: Id) -> c_int;
24    pub fn rb_singleton_class(object: Value) -> Value;
25
26    pub fn rb_define_singleton_method(klass: Value,
27                                      name: *const c_char,
28                                      callback: CallbackPtr,
29                                      argc: Argc);
30}