Skip to main content

rb_struct_define_without_accessor

Function rb_struct_define_without_accessor 

Source
pub unsafe extern "C" fn rb_struct_define_without_accessor(
    name: *const c_char,
    super_: VALUE,
    func: rb_alloc_func_t,
    ...
) -> VALUE
Expand description

Identical to rb_struct_define, except it does not define accessor methods. You have to define them yourself. Forget about the allocator function parameter; it is for internal use only. Extension libraries are unable to properly allocate a ruby struct, because RStruct is opaque.

@internal

Several flags must be set up properly for ::RUBY_T_STRUCT objects, which are also missing for extension libraries.

@endinternal

§@param[in] name Name of the class. @param[in] super Superclass of the defining class. @param[in] func Must be 0 for extension libraries. @param[in] … Arbitrary number of const char*, terminated by NULL. Each of which are the name of fields. @exception rb_eNameError name is not a constant name. @exception rb_eTypeError name is already taken. @exception rb_eArgError Duplicated field name. @return The defined class. @post Global toplevel constant name is defined. @note name is allowed to be a null pointer. This function creates an anonymous struct class then.

Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.3.8