Ruby
3.4.0dev (2024-11-05 revision 348a53415339076afc4a02fcd09f3ae36e9c4c61)
|
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. More... | |
static bool | rb_integer_type_p (VALUE obj) |
Queries if the object is an instance of rb_cInteger. More... | |
static enum ruby_value_type | rb_type (VALUE obj) |
Identical to RB_BUILTIN_TYPE(), except it can also accept special constants. More... | |
static bool | RB_FLOAT_TYPE_P (VALUE obj) |
Queries if the object is an instance of rb_cFloat. More... | |
static bool | RB_DYNAMIC_SYM_P (VALUE obj) |
Queries if the object is a dynamic symbol. More... | |
static bool | RB_SYMBOL_P (VALUE obj) |
Queries if the object is an instance of rb_cSymbol. More... | |
static bool | RB_TYPE_P (VALUE obj, enum ruby_value_type t) |
Queries if the given object is of given type. More... | |
static void | Check_Type (VALUE v, enum ruby_value_type t) |
Identical to RB_TYPE_P(), except it raises exceptions on predication failure. More... | |
Defines enum ruby_value_type.
RBIMPL
or rbimpl
are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will. __VA_ARGS__
is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98. 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. |
obj
is guaranteed to have type t
. Definition at line 433 of file value_type.h.
Referenced by 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. |
obj
must not be a special constant. obj
. Definition at line 169 of file value_type.h.
Referenced by RB_DYNAMIC_SYM_P(), RB_FLOAT_TYPE_P(), and rb_integer_type_p().
|
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_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(), 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.
|
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.
|
inlinestatic |
Identical to RB_BUILTIN_TYPE(), except it can also accept special constants.
[in] | obj | Object in question. |
obj
. Definition at line 204 of file value_type.h.
|
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(), 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_module_id_under(), rb_econv_open_opts(), rb_ensure(), rb_eval_cmd_kw(), rb_file_size(), RB_FL_ABLE(), rb_gc_latest_gc_info(), rb_gc_stat(), rb_Hash(), rb_io_descriptor(), rb_io_getbyte(), rb_io_puts(), rb_num2char_inline(), rb_obj_as_string(), rb_obj_is_kind_of(), rb_profile_frame_classpath(), rb_reg_match2(), rb_str_equal(), rb_str_format(), rb_string_value(), rb_struct_s_members(), rb_typeddata_is_kind_of(), and RTYPEDDATA_P().