Ruby: struct.c File Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

Data Structures | Macros | Enumerations | Functions | Variables
struct.c File Reference
`#include "id.h"`
`#include "internal.h"`
`#include "internal/class.h"`
`#include "internal/error.h"`
`#include "internal/hash.h"`
`#include "internal/object.h"`
`#include "internal/proc.h"`
`#include "internal/struct.h"`
`#include "internal/symbol.h"`
`#include "transient_heap.h"`
`#include "vm_core.h"`
`#include "builtin.h"`

Go to the source code of this file.

## Data Structures
struct | struct_hash_set_arg

## Macros
#define | N_REF_FUNC numberof(ref_func)

## Enumerations
enum | { AREF_HASH_UNIT = 5 , AREF_HASH_THRESHOLD = 10 }

## Functions
const rb_iseq_t * | rb_method_for_self_aref (VALUE name, VALUE arg, const struct rb_builtin_function *func)
const rb_iseq_t * | rb_method_for_self_aset (VALUE name, VALUE arg, const struct rb_builtin_function *func)
VALUE | rb_struct_s_keyword_init (VALUE klass)
VALUE | rb_struct_s_members (VALUE klass)
VALUE | rb_struct_members (VALUE s)
VALUE | rb_struct_getmember (VALUE obj, ID id)
VALUE | rb_struct_alloc_noinit (VALUE klass)
VALUE | rb_struct_define_without_accessor_under (VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc,...)
VALUE | rb_struct_define_without_accessor (const char *class_name, VALUE super, rb_alloc_func_t alloc,...)
VALUE | rb_struct_define (const char *name,...)
VALUE | rb_struct_define_under (VALUE outer, const char *name,...)
VALUE | rb_struct_initialize (VALUE self, VALUE values)
VALUE | rb_struct_alloc (VALUE klass, VALUE values)
VALUE | rb_struct_new (VALUE klass,...)
VALUE | rb_struct_init_copy (VALUE copy, VALUE s)
VALUE | rb_struct_aref (VALUE s, VALUE idx)
VALUE | rb_struct_aset (VALUE s, VALUE idx, VALUE val)
| FUNC_MINIMIZED (VALUE rb_struct_lookup(VALUE s, VALUE idx))
VALUE | rb_struct_lookup (VALUE s, VALUE idx)
VALUE | rb_struct_size (VALUE s)
void | InitVM_Struct (void)
void | Init_Struct (void)

## Variables
VALUE | rb_cStruct

## Macro Definition Documentation

## ◆ N_REF_FUNC

#define N_REF_FUNC numberof(ref_func)

Definition at line 242 of file struct.c.

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
AREF_HASH_UNIT |
AREF_HASH_THRESHOLD |

Definition at line 26 of file struct.c.

## Function Documentation

## ◆ FUNC_MINIMIZED()

FUNC_MINIMIZED | ( | VALUE | rb_struct_lookupVALUE s, VALUE idx | ) |

## ◆ Init_Struct()

void Init_Struct | ( | void |  | ) |

Definition at line 1428 of file struct.c.

References InitVM, and rb_intern().

## ◆ InitVM_Struct()

void InitVM_Struct | ( | void |  | ) |

Definition at line 1388 of file struct.c.

References rb_cObject, rb_cStruct, rb_define_alias(), rb_define_class(), rb_define_method, rb_define_singleton_method, rb_include_module(), rb_mEnumerable, rb_struct_aref(), rb_struct_aset(), rb_struct_init_copy(), rb_struct_size(), and rb_undef_alloc_func().

## ◆ rb_method_for_self_aref()

const rb_iseq_t * rb_method_for_self_aref | ( | VALUE | name,
|  | VALUE | arg,
|  | const struct rb_builtin_function * | func
| ) |  |

Definition at line 9891 of file compile.c.

References name.

## ◆ rb_method_for_self_aset()

const rb_iseq_t * rb_method_for_self_aset | ( | VALUE | name,
|  | VALUE | arg,
|  | const struct rb_builtin_function * | func
| ) |  |

Definition at line 9900 of file compile.c.

References name.

## ◆ rb_struct_alloc()

VALUE rb_struct_alloc | ( | VALUE | klass,
|  | VALUE | values
| ) |  |

Definition at line 760 of file struct.c.

References RARRAY_CONST_PTR, and rb_class_new_instance().

## ◆ rb_struct_alloc_noinit()

VALUE rb_struct_alloc_noinit | ( | VALUE | klass | ) |

Definition at line 381 of file struct.c.

## ◆ rb_struct_aref()

VALUE rb_struct_aref | ( | VALUE | s,
|  | VALUE | idx
| ) |  |

Definition at line 1096 of file struct.c.

References RSTRUCT_GET.

Referenced by InitVM_Struct().

## ◆ rb_struct_aset()

VALUE rb_struct_aset | ( | VALUE | s,
|  | VALUE | idx,
|  | VALUE | val
| ) |  |

Definition at line 1123 of file struct.c.

References RSTRUCT_SET.

Referenced by InitVM_Struct().

## ◆ rb_struct_define()

VALUE rb_struct_define | ( | const char * | name,
|  |  | ...
| ) |  |

Definition at line 464 of file struct.c.

References name, rb_cStruct, and rb_str_new2.

## ◆ rb_struct_define_under()

VALUE rb_struct_define_under | ( | VALUE | outer,
|  | const char * | name,
|  |  | ...
| ) |  |

Definition at line 479 of file struct.c.

References name, rb_cStruct, and rb_define_class_under().

Referenced by Init_etc(), and InitVM_process().

## ◆ rb_struct_define_without_accessor()

VALUE rb_struct_define_without_accessor | ( | const char * | class_name,
|  | VALUE | super,
|  | rb_alloc_func_t | alloc,
|  |  | ...
| ) |  |

Definition at line 451 of file struct.c.

Referenced by Init_Range().

## ◆ rb_struct_define_without_accessor_under()

VALUE rb_struct_define_without_accessor_under | ( | VALUE | outer,
|  | const char * | class_name,
|  | VALUE | super,
|  | rb_alloc_func_t | alloc,
|  |  | ...
| ) |  |

Definition at line 438 of file struct.c.

## ◆ rb_struct_getmember()

VALUE rb_struct_getmember | ( | VALUE | obj,
|  | ID | id
| ) |  |

Definition at line 219 of file struct.c.

References ID2SYM, Qnil, RSTRUCT_GET, and UNREACHABLE_RETURN.

## ◆ rb_struct_init_copy()

VALUE rb_struct_init_copy | ( | VALUE | copy,
|  | VALUE | s
| ) |  |

Definition at line 1010 of file struct.c.

References len, OBJ_INIT_COPY, rb_eTypeError, rb_raise(), RSTRUCT_GET, RSTRUCT_LEN, and RSTRUCT_SET.

Referenced by InitVM_Struct().

## ◆ rb_struct_initialize()

VALUE rb_struct_initialize | ( | VALUE | self,
|  | VALUE | values
| ) |  |

Definition at line 693 of file struct.c.

References Qnil, RARRAY_CONST_PTR, RB_GC_GUARD, and struct_hash_set_arg::self.

## ◆ rb_struct_lookup()

VALUE rb_struct_lookup | ( | VALUE | s,
|  | VALUE | idx
| ) |  |

Definition at line 1136 of file struct.c.

References Qnil.

Referenced by rb_obj_dig().

## ◆ rb_struct_members()

VALUE rb_struct_members | ( | VALUE | s | ) |

Definition at line 80 of file struct.c.

References RARRAY_LEN, rb_eTypeError, rb_obj_class(), rb_raise(), rb_struct_s_members(), and RSTRUCT_LEN.

## ◆ rb_struct_new()

VALUE rb_struct_new | ( | VALUE | klass,
|  |  | ...
| ) |  |

Definition at line 766 of file struct.c.

References N_REF_FUNC, numberof, rb_ary_tmp_new(), rb_class_new_instance(), and rb_long2int.

## ◆ rb_struct_s_keyword_init()

VALUE rb_struct_s_keyword_init | ( | VALUE | klass | ) |

Definition at line 60 of file struct.c.

## ◆ rb_struct_s_members()

VALUE rb_struct_s_members | ( | VALUE | klass | ) |

Definition at line 66 of file struct.c.

References NIL_P, rb_eTypeError, rb_raise(), and T_ARRAY.

Referenced by rb_struct_members().

## ◆ rb_struct_size()

VALUE rb_struct_size | ( | VALUE | s | ) |

Definition at line 1326 of file struct.c.

References LONG2FIX, and RSTRUCT_LEN.

Referenced by InitVM_Struct().

## Variable Documentation

## ◆ rb_cStruct

VALUE rb_cStruct

Definition at line 34 of file struct.c.

Referenced by Init_etc(), InitVM_Struct(), rb_struct_define(), and rb_struct_define_under().