Ruby: constant.h Source File

Ruby 3.2.5p208 (2024-07-26 revision 31d0f1a2e7dbfb60731d1f05b868e1d578cda493)

constant.h
1#ifndef CONSTANT_H
2#define CONSTANT_H
3/**********************************************************************
4
5 constant.h -
6
7 $Author$
8 created at: Sun Nov 15 00:09:33 2009
9
10 Copyright (C) 2009 Yusuke Endoh
11
12**********************************************************************/
13#include "ruby/ruby.h"
14#include "id_table.h"
15
16typedef enum {
17 CONST_DEPRECATED = 0x100,
18
19 CONST_VISIBILITY_MASK = 0xff,
20 CONST_PUBLIC = 0x00,
21 CONST_PRIVATE,
22 CONST_VISIBILITY_MAX
23} rb_const_flag_t;
24
25#define RB_CONST_PRIVATE_P(ce) \
26 (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PRIVATE)
27#define RB_CONST_PUBLIC_P(ce) \
28 (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PUBLIC)
29
30#define RB_CONST_DEPRECATED_P(ce) \
31 ((ce)->flag & CONST_DEPRECATED)
32
33 typedef struct rb_const_entry_struct {
34 rb_const_flag_t flag;
35 int line;
36 VALUE value; /* should be mark */
37 VALUE file; /* should be mark */
38} rb_const_entry_t;
39
40 VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
41 VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
42 VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
43void rb_free_const_table(struct rb_id_table *tbl);
44 VALUE rb_const_source_location(VALUE, ID);
45
46MJIT_SYMBOL_EXPORT_BEGIN
47int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
48 rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
49 VALUE rb_public_const_get_at(VALUE klass, ID id);
50 VALUE rb_public_const_get_from(VALUE klass, ID id);
51int rb_public_const_defined_from(VALUE klass, ID id);
52 VALUE rb_const_source_location_at(VALUE, ID);
53MJIT_SYMBOL_EXPORT_END
54
55#endif /* CONSTANT_H */
ruby.h
rb_const_entry_struct
Definition constant.h:33
rb_id_table
Definition id_table.c:41
ID
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
Definition value.h:52
VALUE
uintptr_t VALUE
Type that represents a Ruby object.
Definition value.h:40