diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-06-12 11:15:19 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-07-13 17:55:55 +0900 |
commit | 9c1fe9064c56cef3bde856d7fa1f907195af1003 (patch) | |
tree | a703b38cdb661ea4c72eb8d17b19f6c1566a0195 /struct.c | |
parent | d426343418aab6148706860bd1678ac309dc12c0 (diff) |
[Feature #19757] Add new API `rb_data_define`
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/8066
Diffstat (limited to 'struct.c')
-rw-r--r-- | struct.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -1722,6 +1722,18 @@ rb_data_s_def(int argc, VALUE *argv, VALUE klass) return data_class; } +VALUE +rb_data_define(VALUE super, ...) +{ + va_list ar; + VALUE ary; + va_start(ar, super); + ary = struct_make_members_list(ar); + va_end(ar); + if (!super) super = rb_cData; + return setup_data(anonymous_struct(super), ary); +} + /* * call-seq: * DataClass::members -> array_of_symbols |