Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
class.h
Go to the documentation of this file.
1 #ifndef RBIMPL_INTERN_CLASS_H /*-*-C++-*-vi:se ft=cpp:*/
2 #define RBIMPL_INTERN_CLASS_H
24 #include "ruby/internal/value.h"
25 #include "ruby/backward/2/stdarg.h"
26 
28 
29 /* class.c */
30 
31 
38 VALUE rb_class_new(VALUE super);
39 
49 VALUE rb_mod_init_copy(VALUE clone, VALUE orig);
50 
59 void rb_check_inheritable(VALUE super);
60 
71 VALUE rb_define_class_id(ID id, VALUE super);
72 
94 VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super);
95 
101 VALUE rb_module_new(void);
102 
103 
110 
119 
134 
145 
158 VALUE rb_mod_include_p(VALUE child, VALUE parent);
159 
176 
189 
202 
203 
214 
228 VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod);
229 
243 VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod);
244 
258 VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod);
259 
273 VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod);
274 
288 VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj);
289 
301 void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int arity);
302 
303 /* vm_method.c */
304 
324 void rb_undef(VALUE mod, ID mid);
325 
326 /* class.c */
327 
339 void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);
340 
352 void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);
353 
365 void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity);
366 
391 
393 
394 #endif /* RBIMPL_INTERN_CLASS_H */
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:74
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:65
VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod)
Identical to rb_class_instance_methods(), except it returns names of methods that are protected only.
Definition: class.c:1912
VALUE rb_refinement_new(void)
Creates a new, anonymous refinement.
Definition: class.c:1082
VALUE rb_class_new(VALUE super)
Creates a new, anonymous class.
Definition: class.c:359
VALUE rb_class_subclasses(VALUE klass)
Queries the class's direct descendants.
Definition: class.c:1692
VALUE rb_singleton_class(VALUE obj)
Finds or creates the singleton class of the passed object.
Definition: class.c:2297
VALUE rb_class_attached_object(VALUE klass)
Returns the attached object for a singleton class.
Definition: class.c:1715
VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj)
Identical to rb_class_instance_methods(), except it returns names of singleton methods instead of ins...
Definition: class.c:2089
VALUE rb_module_new(void)
Creates a new, anonymous module.
Definition: class.c:1076
VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod)
Generates an array of symbols, which are the list of method names defined in the passed class.
Definition: class.c:1897
void rb_check_inheritable(VALUE super)
Asserts that the given class can derive a child class.
Definition: class.c:344
VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod)
Identical to rb_class_instance_methods(), except it returns names of methods that are public only.
Definition: class.c:1950
VALUE rb_define_module_id_under(VALUE outer, ID id)
Identical to rb_define_module_under(), except it takes the name in ID instead of C's string.
Definition: class.c:1125
VALUE rb_mod_included_modules(VALUE mod)
Queries the list of included modules.
Definition: class.c:1510
VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super)
Identical to rb_define_class_under(), except it takes the name in ID instead of C's string.
Definition: class.c:1051
VALUE rb_mod_ancestors(VALUE mod)
Queries the module's ancestors.
Definition: class.c:1578
VALUE rb_mod_include_p(VALUE child, VALUE parent)
Queries if the passed module is included by the module.
Definition: class.c:1546
VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod)
Identical to rb_class_instance_methods(), except it returns names of methods that are private only.
Definition: class.c:1935
VALUE rb_mod_init_copy(VALUE clone, VALUE orig)
The comment that comes with this function says :nodoc:.
Definition: class.c:533
VALUE rb_define_module_id(ID id)
This is a very badly designed API that creates an anonymous module.
Definition: class.c:1089
VALUE rb_define_class_id(ID id, VALUE super)
This is a very badly designed API that creates an anonymous class.
Definition: class.c:950
void rb_define_protected_method(VALUE klass, const char *mid, VALUE(*func)(ANYARGS), int arity)
Identical to rb_define_method(), except it defines a protected method.
Definition: class.c:2151
void rb_define_private_method(VALUE klass, const char *mid, VALUE(*func)(ANYARGS), int arity)
Identical to rb_define_method(), except it defines a private method.
Definition: class.c:2160
void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity)
Identical to rb_define_method(), except it defines a singleton method.
Definition: class.c:2320
void rb_define_method_id(VALUE klass, ID mid, VALUE(*func)(ANYARGS), int arity)
Identical to rb_define_method(), except it takes the name of the method in ID instead of C's string.
Definition: class.c:2133
void rb_undef(VALUE mod, ID mid)
Inserts a method entry that hides previous method definition of the given name.
Definition: vm_method.c:1906
VALUE rb_class_descendants(VALUE klass)
Queries the class's descendants.
#define RBIMPL_ATTR_NONNULL(list)
Wraps (or simulates) __attribute__((nonnull))
Definition: nonnull.h:27
Defines old _.
#define ANYARGS
Functions declared using this macro take arbitrary arguments, including void.
Definition: stdarg.h:64
Defines VALUE and ID.
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
Definition: value.h:52
uintptr_t VALUE
Type that represents a Ruby object.
Definition: value.h:40