Ruby 3.4.5p51 (2025-07-16 revision 20cda200d3ce092571d0b5d342dadca69636cb0f)
|
Defines enum ruby_value_type. More...
#include "ruby/internal/assume.h"
#include "ruby/internal/attr/artificial.h"
#include "ruby/internal/attr/cold.h"
#include "ruby/internal/attr/enum_extensibility.h"
#include "ruby/internal/attr/forceinline.h"
#include "ruby/internal/attr/pure.h"
#include "ruby/internal/cast.h"
#include "ruby/internal/constant_p.h"
#include "ruby/internal/core/rbasic.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/error.h"
#include "ruby/internal/has/builtin.h"
#include "ruby/internal/special_consts.h"
#include "ruby/internal/stdbool.h"
#include "ruby/internal/value.h"
#include "ruby/assert.h"
Go to the source code of this file.
Enumerations | |
enum | ruby_value_type { RUBY_T_NONE = 0x00 , RUBY_T_OBJECT = 0x01 , RUBY_T_CLASS = 0x02 , RUBY_T_MODULE = 0x03 , RUBY_T_FLOAT = 0x04 , RUBY_T_STRING = 0x05 , RUBY_T_REGEXP = 0x06 , RUBY_T_ARRAY = 0x07 , RUBY_T_HASH = 0x08 , RUBY_T_STRUCT = 0x09 , RUBY_T_BIGNUM = 0x0a , RUBY_T_FILE = 0x0b , RUBY_T_DATA = 0x0c , RUBY_T_MATCH = 0x0d , RUBY_T_COMPLEX = 0x0e , RUBY_T_RATIONAL = 0x0f , RUBY_T_NIL = 0x11 , RUBY_T_TRUE = 0x12 , RUBY_T_FALSE = 0x13 , RUBY_T_SYMBOL = 0x14 , RUBY_T_FIXNUM = 0x15 , RUBY_T_UNDEF = 0x16 , RUBY_T_IMEMO = 0x1a , RUBY_T_NODE = 0x1b , RUBY_T_ICLASS = 0x1c , RUBY_T_ZOMBIE = 0x1d , RUBY_T_MOVED = 0x1e , RUBY_T_MASK = 0x1f } |
C-level type of an object. More... |
Functions | |
static enum ruby_value_type | RB_BUILTIN_TYPE (VALUE obj) |
Queries the type of the object. | |
static bool | rb_integer_type_p (VALUE obj) |
Queries if the object is an instance of rb_cInteger. | |
static enum ruby_value_type | rb_type (VALUE obj) |
Identical to RB_BUILTIN_TYPE(), except it can also accept special constants. | |
static bool | RB_FLOAT_TYPE_P (VALUE obj) |
Queries if the object is an instance of rb_cFloat. | |
static bool | RB_DYNAMIC_SYM_P (VALUE obj) |
Queries if the object is a dynamic symbol. | |
static bool | RB_SYMBOL_P (VALUE obj) |
Queries if the object is an instance of rb_cSymbol. | |
static bool | RB_TYPE_P (VALUE obj, enum ruby_value_type t) |
Queries if the given object is of given type. | |
static void | Check_Type (VALUE v, enum ruby_value_type t) |
Identical to RB_TYPE_P(), except it raises exceptions on predication failure. |
Defines enum ruby_value_type.
Definition in file value_type.h.
#define rb_type_p RB_TYPE_P |
Just another name of RB_TYPE_P.
Definition at line 89 of file value_type.h.
enum ruby_value_type |
C-level type of an object.
Enumerator | |
---|---|
RUBY_T_NONE | Non-object (swept etc.) |
RUBY_T_OBJECT |
|
RUBY_T_CLASS | |
RUBY_T_MODULE |
|
RUBY_T_FLOAT |
|
RUBY_T_STRING |
|
RUBY_T_REGEXP |
|
RUBY_T_ARRAY |
|
RUBY_T_HASH |
|
RUBY_T_STRUCT |
|
RUBY_T_BIGNUM |
|
RUBY_T_FILE |
|
RUBY_T_DATA |
|
RUBY_T_MATCH |
|
RUBY_T_COMPLEX |
|
RUBY_T_RATIONAL |
|
RUBY_T_NIL |
|
RUBY_T_TRUE |
|
RUBY_T_FALSE |
|
RUBY_T_SYMBOL |
|
RUBY_T_FIXNUM | Integers formerly known as Fixnums. |
RUBY_T_UNDEF |
|
RUBY_T_IMEMO |
|
RUBY_T_NODE |
|
RUBY_T_ICLASS | Hidden classes known as IClasses. |
RUBY_T_ZOMBIE |
|
RUBY_T_MOVED |
|
RUBY_T_MASK | Bitmask of ruby_value_type. |
Definition at line 111 of file value_type.h.
|
inlinestatic |
Identical to RB_TYPE_P(), except it raises exceptions on predication failure.
[in] | v | An object. |
[in] | t | A type. |
rb_eTypeError | `obj` is not of type `t`. |
rb_eFatal | `obj` is corrupt. |
Definition at line 433 of file value_type.h.
Referenced by Check_Type(), rb_class_modify_check(), rb_class_new(), rb_class_new_instance_kw(), rb_get_alloc_func(), rb_memory_view_register(), rb_mod_include_p(), rb_obj_alloc(), and RTYPEDDATA_P().
|
inlinestatic |
Queries the type of the object.
[in] | obj | Object in question. |
Definition at line 182 of file value_type.h.
Referenced by RB_BUILTIN_TYPE(), RB_DYNAMIC_SYM_P(), RB_FLOAT_TYPE_P(), rb_integer_type_p(), and rb_type().
|
inlinestatic |
Queries if the object is a dynamic symbol.
[in] | obj | Object in question. |
true | It is. |
false | It isn't. |
Definition at line 287 of file value_type.h.
Referenced by RB_DYNAMIC_SYM_P(), and RB_SYMBOL_P().
|
inlinestatic |
Queries if the object is an instance of rb_cFloat.
[in] | obj | Object in question. |
true | It is. |
false | It isn't. |
Definition at line 264 of file value_type.h.
Referenced by rb_big_cmp(), rb_big_eq(), rb_big_minus(), rb_big_mul(), rb_big_plus(), rb_big_pow(), rb_check_to_float(), rb_complex_abs(), RB_FLOAT_TYPE_P(), and rb_num2long().
|
inlinestatic |
Queries if the object is an instance of rb_cInteger.
[in] | obj | Object in question. |
true | It is. |
false | It isn't. |
Definition at line 204 of file value_type.h.
Referenced by rb_integer_type_p().
|
inlinestatic |
Queries if the object is an instance of rb_cSymbol.
[in] | obj | Object in question. |
true | It is. |
false | It isn't. |
Definition at line 307 of file value_type.h.
Referenced by RB_SYMBOL_P().
|
inlinestatic |
Identical to RB_BUILTIN_TYPE(), except it can also accept special constants.
[in] | obj | Object in question. |
Definition at line 225 of file value_type.h.
Referenced by rb_type(), and RB_TYPE_P().
|
inlinestatic |
Queries if the given object is of given type.
[in] | obj | An object. |
[in] | t | A type. |
true | obj is of type t. |
false | Otherwise. |
Definition at line 376 of file value_type.h.
Referenced by Check_Type(), make_metaclass(), rb_alias(), rb_ary_freeze(), rb_ary_rassoc(), rb_check_frozen_inline(), rb_check_id(), rb_check_inheritable(), rb_check_symbol(), rb_check_typeddata(), rb_class_inherited_p(), rb_class_modify_check(), rb_class_superclass(), rb_complex_minus(), rb_complex_mul(), rb_complex_plus(), rb_complex_pow(), rb_cvar_set(), rb_define_class(), rb_define_module(), rb_define_module_id_under(), rb_econv_open_opts(), rb_enc_associate_index(), rb_ensure(), rb_eval_cmd_kw(), rb_file_size(), RB_FL_ABLE(), rb_gc_latest_gc_info(), rb_gc_stat(), rb_Hash(), rb_include_module(), rb_io_descriptor(), rb_io_getbyte(), rb_io_puts(), rb_mod_included_modules(), rb_mod_init_copy(), rb_num2char_inline(), rb_obj_as_string(), rb_obj_is_kind_of(), rb_obj_singleton_methods(), rb_prepend_module(), rb_profile_frame_classpath(), rb_reg_match2(), rb_singleton_class(), rb_str_equal(), rb_str_format(), rb_string_value(), rb_struct_s_members(), RB_TYPE_P(), rb_typeddata_is_kind_of(), and RTYPEDDATA_P().