rbspy_ruby_structs/
ruby_2_3_5.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    fn extract_bit(byte: u8, index: usize) -> bool {
20        let bit_index = if cfg!(target_endian = "big") {
21            7 - (index % 8)
22        } else {
23            index % 8
24        };
25        let mask = 1 << bit_index;
26        byte & mask == mask
27    }
28    #[inline]
29    pub fn get_bit(&self, index: usize) -> bool {
30        debug_assert!(index / 8 < self.storage.as_ref().len());
31        let byte_index = index / 8;
32        let byte = self.storage.as_ref()[byte_index];
33        Self::extract_bit(byte, index)
34    }
35    #[inline]
36    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38        let byte_index = index / 8;
39        let byte = unsafe {
40            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41        };
42        Self::extract_bit(byte, index)
43    }
44    #[inline]
45    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46        let bit_index = if cfg!(target_endian = "big") {
47            7 - (index % 8)
48        } else {
49            index % 8
50        };
51        let mask = 1 << bit_index;
52        if val {
53            byte | mask
54        } else {
55            byte & !mask
56        }
57    }
58    #[inline]
59    pub fn set_bit(&mut self, index: usize, val: bool) {
60        debug_assert!(index / 8 < self.storage.as_ref().len());
61        let byte_index = index / 8;
62        let byte = &mut self.storage.as_mut()[byte_index];
63        *byte = Self::change_bit(*byte, index, val);
64    }
65    #[inline]
66    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
67        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
68        let byte_index = index / 8;
69        let byte = unsafe {
70            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
71        };
72        unsafe { *byte = Self::change_bit(*byte, index, val) };
73    }
74    #[inline]
75    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
76        debug_assert!(bit_width <= 64);
77        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
78        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
79        let mut val = 0;
80        for i in 0..(bit_width as usize) {
81            if self.get_bit(i + bit_offset) {
82                let index = if cfg!(target_endian = "big") {
83                    bit_width as usize - 1 - i
84                } else {
85                    i
86                };
87                val |= 1 << index;
88            }
89        }
90        val
91    }
92    #[inline]
93    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
94        debug_assert!(bit_width <= 64);
95        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
96        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
97        let mut val = 0;
98        for i in 0..(bit_width as usize) {
99            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
100                let index = if cfg!(target_endian = "big") {
101                    bit_width as usize - 1 - i
102                } else {
103                    i
104                };
105                val |= 1 << index;
106            }
107        }
108        val
109    }
110    #[inline]
111    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
112        debug_assert!(bit_width <= 64);
113        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
114        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
115        for i in 0..(bit_width as usize) {
116            let mask = 1 << i;
117            let val_bit_is_set = val & mask == mask;
118            let index = if cfg!(target_endian = "big") {
119                bit_width as usize - 1 - i
120            } else {
121                i
122            };
123            self.set_bit(index + bit_offset, val_bit_is_set);
124        }
125    }
126    #[inline]
127    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
128        debug_assert!(bit_width <= 64);
129        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
130        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
131        for i in 0..(bit_width as usize) {
132            let mask = 1 << i;
133            let val_bit_is_set = val & mask == mask;
134            let index = if cfg!(target_endian = "big") {
135                bit_width as usize - 1 - i
136            } else {
137                i
138            };
139            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
140        }
141    }
142}
143pub type __clockid_t = ::std::os::raw::c_int;
144pub type clockid_t = __clockid_t;
145#[repr(C)]
146#[derive(Debug, Copy, Clone)]
147pub struct __sigset_t {
148    pub __val: [usize; 16usize],
149}
150#[repr(C)]
151#[derive(Debug, Copy, Clone)]
152pub struct __pthread_internal_list {
153    pub __prev: *mut __pthread_internal_list,
154    pub __next: *mut __pthread_internal_list,
155}
156pub type __pthread_list_t = __pthread_internal_list;
157#[repr(C)]
158#[derive(Debug, Copy, Clone)]
159pub struct __pthread_mutex_s {
160    pub __lock: ::std::os::raw::c_int,
161    pub __count: ::std::os::raw::c_uint,
162    pub __owner: ::std::os::raw::c_int,
163    pub __nusers: ::std::os::raw::c_uint,
164    pub __kind: ::std::os::raw::c_int,
165    pub __spins: ::std::os::raw::c_short,
166    pub __elision: ::std::os::raw::c_short,
167    pub __list: __pthread_list_t,
168}
169#[repr(C)]
170#[derive(Copy, Clone)]
171pub struct __pthread_cond_s {
172    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
173    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
174    pub __g_refs: [::std::os::raw::c_uint; 2usize],
175    pub __g_size: [::std::os::raw::c_uint; 2usize],
176    pub __g1_orig_size: ::std::os::raw::c_uint,
177    pub __wrefs: ::std::os::raw::c_uint,
178    pub __g_signals: [::std::os::raw::c_uint; 2usize],
179}
180#[repr(C)]
181#[derive(Copy, Clone)]
182pub union __pthread_cond_s__bindgen_ty_1 {
183    pub __wseq: ::std::os::raw::c_ulonglong,
184    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
189    pub __low: ::std::os::raw::c_uint,
190    pub __high: ::std::os::raw::c_uint,
191}
192impl ::std::fmt::Debug for __pthread_cond_s__bindgen_ty_1 {
193    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
194        write!(f, "__pthread_cond_s__bindgen_ty_1 {{ union }}")
195    }
196}
197#[repr(C)]
198#[derive(Copy, Clone)]
199pub union __pthread_cond_s__bindgen_ty_2 {
200    pub __g1_start: ::std::os::raw::c_ulonglong,
201    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
202}
203#[repr(C)]
204#[derive(Debug, Copy, Clone)]
205pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
206    pub __low: ::std::os::raw::c_uint,
207    pub __high: ::std::os::raw::c_uint,
208}
209impl ::std::fmt::Debug for __pthread_cond_s__bindgen_ty_2 {
210    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
211        write!(f, "__pthread_cond_s__bindgen_ty_2 {{ union }}")
212    }
213}
214impl ::std::fmt::Debug for __pthread_cond_s {
215    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
216        write ! (f , "__pthread_cond_s {{ __bindgen_anon_1: {:?}, __bindgen_anon_2: {:?}, __g_refs: {:?}, __g_size: {:?}, __g1_orig_size: {:?}, __wrefs: {:?}, __g_signals: {:?} }}" , self . __bindgen_anon_1 , self . __bindgen_anon_2 , self . __g_refs , self . __g_size , self . __g1_orig_size , self . __wrefs , self . __g_signals)
217    }
218}
219pub type pthread_t = usize;
220#[repr(C)]
221#[derive(Copy, Clone)]
222pub union pthread_mutex_t {
223    pub __data: __pthread_mutex_s,
224    pub __size: [::std::os::raw::c_char; 40usize],
225    pub __align: ::std::os::raw::c_long,
226}
227impl ::std::fmt::Debug for pthread_mutex_t {
228    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
229        write!(f, "pthread_mutex_t {{ union }}")
230    }
231}
232#[repr(C)]
233#[derive(Copy, Clone)]
234pub union pthread_cond_t {
235    pub __data: __pthread_cond_s,
236    pub __size: [::std::os::raw::c_char; 48usize],
237    pub __align: ::std::os::raw::c_longlong,
238}
239impl ::std::fmt::Debug for pthread_cond_t {
240    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
241        write!(f, "pthread_cond_t {{ union }}")
242    }
243}
244pub type VALUE = usize;
245pub type ID = usize;
246pub const ruby_fl_type_RUBY_FL_WB_PROTECTED: ruby_fl_type = 32;
247pub const ruby_fl_type_RUBY_FL_PROMOTED0: ruby_fl_type = 32;
248pub const ruby_fl_type_RUBY_FL_PROMOTED1: ruby_fl_type = 64;
249pub const ruby_fl_type_RUBY_FL_PROMOTED: ruby_fl_type = 96;
250pub const ruby_fl_type_RUBY_FL_FINALIZE: ruby_fl_type = 128;
251pub const ruby_fl_type_RUBY_FL_TAINT: ruby_fl_type = 256;
252pub const ruby_fl_type_RUBY_FL_UNTRUSTED: ruby_fl_type = 256;
253pub const ruby_fl_type_RUBY_FL_EXIVAR: ruby_fl_type = 1024;
254pub const ruby_fl_type_RUBY_FL_FREEZE: ruby_fl_type = 2048;
255pub const ruby_fl_type_RUBY_FL_USHIFT: ruby_fl_type = 12;
256pub const ruby_fl_type_RUBY_FL_USER0: ruby_fl_type = 4096;
257pub const ruby_fl_type_RUBY_FL_USER1: ruby_fl_type = 8192;
258pub const ruby_fl_type_RUBY_FL_USER2: ruby_fl_type = 16384;
259pub const ruby_fl_type_RUBY_FL_USER3: ruby_fl_type = 32768;
260pub const ruby_fl_type_RUBY_FL_USER4: ruby_fl_type = 65536;
261pub const ruby_fl_type_RUBY_FL_USER5: ruby_fl_type = 131072;
262pub const ruby_fl_type_RUBY_FL_USER6: ruby_fl_type = 262144;
263pub const ruby_fl_type_RUBY_FL_USER7: ruby_fl_type = 524288;
264pub const ruby_fl_type_RUBY_FL_USER8: ruby_fl_type = 1048576;
265pub const ruby_fl_type_RUBY_FL_USER9: ruby_fl_type = 2097152;
266pub const ruby_fl_type_RUBY_FL_USER10: ruby_fl_type = 4194304;
267pub const ruby_fl_type_RUBY_FL_USER11: ruby_fl_type = 8388608;
268pub const ruby_fl_type_RUBY_FL_USER12: ruby_fl_type = 16777216;
269pub const ruby_fl_type_RUBY_FL_USER13: ruby_fl_type = 33554432;
270pub const ruby_fl_type_RUBY_FL_USER14: ruby_fl_type = 67108864;
271pub const ruby_fl_type_RUBY_FL_USER15: ruby_fl_type = 134217728;
272pub const ruby_fl_type_RUBY_FL_USER16: ruby_fl_type = 268435456;
273pub const ruby_fl_type_RUBY_FL_USER17: ruby_fl_type = 536870912;
274pub const ruby_fl_type_RUBY_FL_USER18: ruby_fl_type = 1073741824;
275pub const ruby_fl_type_RUBY_FL_USER19: ruby_fl_type = -2147483648;
276pub const ruby_fl_type_RUBY_ELTS_SHARED: ruby_fl_type = 16384;
277pub const ruby_fl_type_RUBY_FL_DUPPED: ruby_fl_type = 1311;
278pub const ruby_fl_type_RUBY_FL_SINGLETON: ruby_fl_type = 4096;
279pub type ruby_fl_type = ::std::os::raw::c_int;
280#[repr(C)]
281#[derive(Debug, Copy, Clone)]
282pub struct RBasic {
283    pub flags: VALUE,
284    pub klass: VALUE,
285}
286#[repr(C)]
287#[derive(Copy, Clone)]
288pub struct RString {
289    pub basic: RBasic,
290    pub as_: RString__bindgen_ty_1,
291}
292#[repr(C)]
293#[derive(Copy, Clone)]
294pub union RString__bindgen_ty_1 {
295    pub heap: RString__bindgen_ty_1__bindgen_ty_1,
296    pub ary: [::std::os::raw::c_char; 24usize],
297}
298#[repr(C)]
299#[derive(Copy, Clone)]
300pub struct RString__bindgen_ty_1__bindgen_ty_1 {
301    pub len: ::std::os::raw::c_long,
302    pub ptr: *mut ::std::os::raw::c_char,
303    pub aux: RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
304}
305#[repr(C)]
306#[derive(Copy, Clone)]
307pub union RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
308    pub capa: ::std::os::raw::c_long,
309    pub shared: VALUE,
310}
311impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
312    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
313        write!(
314            f,
315            "RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
316        )
317    }
318}
319impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1 {
320    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
321        write!(
322            f,
323            "RString__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, ptr: {:?}, aux: {:?} }}",
324            self.len, self.ptr, self.aux
325        )
326    }
327}
328impl ::std::fmt::Debug for RString__bindgen_ty_1 {
329    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
330        write!(f, "RString__bindgen_ty_1 {{ union }}")
331    }
332}
333impl ::std::fmt::Debug for RString {
334    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
335        write!(
336            f,
337            "RString {{ basic: {:?}, as: {:?} }}",
338            self.basic, self.as_
339        )
340    }
341}
342#[repr(C)]
343#[derive(Copy, Clone)]
344pub struct RArray {
345    pub basic: RBasic,
346    pub as_: RArray__bindgen_ty_1,
347}
348#[repr(C)]
349#[derive(Copy, Clone)]
350pub union RArray__bindgen_ty_1 {
351    pub heap: RArray__bindgen_ty_1__bindgen_ty_1,
352    pub ary: [VALUE; 3usize],
353}
354#[repr(C)]
355#[derive(Copy, Clone)]
356pub struct RArray__bindgen_ty_1__bindgen_ty_1 {
357    pub len: ::std::os::raw::c_long,
358    pub aux: RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
359    pub ptr: *const VALUE,
360}
361#[repr(C)]
362#[derive(Copy, Clone)]
363pub union RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
364    pub capa: ::std::os::raw::c_long,
365    pub shared: VALUE,
366}
367impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
368    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
369        write!(
370            f,
371            "RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
372        )
373    }
374}
375impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1 {
376    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
377        write!(
378            f,
379            "RArray__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, aux: {:?}, ptr: {:?} }}",
380            self.len, self.aux, self.ptr
381        )
382    }
383}
384impl ::std::fmt::Debug for RArray__bindgen_ty_1 {
385    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
386        write!(f, "RArray__bindgen_ty_1 {{ union }}")
387    }
388}
389impl ::std::fmt::Debug for RArray {
390    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
391        write!(
392            f,
393            "RArray {{ basic: {:?}, as: {:?} }}",
394            self.basic, self.as_
395        )
396    }
397}
398pub type st_data_t = usize;
399pub type st_index_t = st_data_t;
400#[repr(C)]
401#[derive(Debug, Copy, Clone)]
402pub struct st_hash_type {
403    pub compare: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
404    pub hash: ::std::option::Option<unsafe extern "C" fn() -> st_index_t>,
405}
406#[repr(C)]
407#[derive(Copy, Clone)]
408pub struct st_table {
409    pub type_: *const st_hash_type,
410    pub num_bins: st_index_t,
411    pub _bitfield_align_1: [u64; 0],
412    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
413    pub as_: st_table__bindgen_ty_1,
414}
415#[repr(C)]
416#[derive(Copy, Clone)]
417pub union st_table__bindgen_ty_1 {
418    pub big: st_table__bindgen_ty_1__bindgen_ty_1,
419    pub packed: st_table__bindgen_ty_1__bindgen_ty_2,
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct st_table__bindgen_ty_1__bindgen_ty_1 {
424    pub bins: *mut *mut st_table_entry,
425    pub private_list_head: [*mut ::std::os::raw::c_void; 2usize],
426}
427#[repr(C)]
428#[derive(Debug, Copy, Clone)]
429pub struct st_table__bindgen_ty_1__bindgen_ty_2 {
430    pub entries: *mut st_packed_entry,
431    pub real_entries: st_index_t,
432}
433impl ::std::fmt::Debug for st_table__bindgen_ty_1 {
434    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
435        write!(f, "st_table__bindgen_ty_1 {{ union }}")
436    }
437}
438impl ::std::fmt::Debug for st_table {
439    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
440        write ! (f , "st_table {{ type: {:?}, num_bins: {:?}, entries_packed : {:?}, num_entries : {:?}, as: {:?} }}" , self . type_ , self . num_bins , self . entries_packed () , self . num_entries () , self . as_)
441    }
442}
443impl st_table {
444    #[inline]
445    pub fn entries_packed(&self) -> ::std::os::raw::c_uint {
446        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
447    }
448    #[inline]
449    pub fn set_entries_packed(&mut self, val: ::std::os::raw::c_uint) {
450        unsafe {
451            let val: u32 = ::std::mem::transmute(val);
452            self._bitfield_1.set(0usize, 1u8, val as u64)
453        }
454    }
455    #[inline]
456    pub unsafe fn entries_packed_raw(this: *const Self) -> ::std::os::raw::c_uint {
457        unsafe {
458            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
459                ::std::ptr::addr_of!((*this)._bitfield_1),
460                0usize,
461                1u8,
462            ) as u32)
463        }
464    }
465    #[inline]
466    pub unsafe fn set_entries_packed_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
467        unsafe {
468            let val: u32 = ::std::mem::transmute(val);
469            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
470                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
471                0usize,
472                1u8,
473                val as u64,
474            )
475        }
476    }
477    #[inline]
478    pub fn num_entries(&self) -> st_index_t {
479        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 63u8) as usize) }
480    }
481    #[inline]
482    pub fn set_num_entries(&mut self, val: st_index_t) {
483        unsafe {
484            let val: usize = ::std::mem::transmute(val);
485            self._bitfield_1.set(1usize, 63u8, val as u64)
486        }
487    }
488    #[inline]
489    pub unsafe fn num_entries_raw(this: *const Self) -> st_index_t {
490        unsafe {
491            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
492                ::std::ptr::addr_of!((*this)._bitfield_1),
493                1usize,
494                63u8,
495            ) as u64)
496        }
497    }
498    #[inline]
499    pub unsafe fn set_num_entries_raw(this: *mut Self, val: st_index_t) {
500        unsafe {
501            let val: usize = ::std::mem::transmute(val);
502            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
503                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
504                1usize,
505                63u8,
506                val as u64,
507            )
508        }
509    }
510    #[inline]
511    pub fn new_bitfield_1(
512        entries_packed: ::std::os::raw::c_uint,
513        num_entries: st_index_t,
514    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
515        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
516        __bindgen_bitfield_unit.set(0usize, 1u8, {
517            let entries_packed: u32 = unsafe { ::std::mem::transmute(entries_packed) };
518            entries_packed as u64
519        });
520        __bindgen_bitfield_unit.set(1usize, 63u8, {
521            let num_entries: usize = unsafe { ::std::mem::transmute(num_entries) };
522            num_entries as u64
523        });
524        __bindgen_bitfield_unit
525    }
526}
527pub type rb_alloc_func_t = ::std::option::Option<unsafe extern "C" fn(arg1: VALUE) -> VALUE>;
528pub type rb_unblock_function_t =
529    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
530pub type rb_event_flag_t = u32;
531pub const ruby_id_types_RUBY_ID_STATIC_SYM: ruby_id_types = 1;
532pub const ruby_id_types_RUBY_ID_LOCAL: ruby_id_types = 0;
533pub const ruby_id_types_RUBY_ID_INSTANCE: ruby_id_types = 2;
534pub const ruby_id_types_RUBY_ID_GLOBAL: ruby_id_types = 6;
535pub const ruby_id_types_RUBY_ID_ATTRSET: ruby_id_types = 8;
536pub const ruby_id_types_RUBY_ID_CONST: ruby_id_types = 10;
537pub const ruby_id_types_RUBY_ID_CLASS: ruby_id_types = 12;
538pub const ruby_id_types_RUBY_ID_JUNK: ruby_id_types = 14;
539pub const ruby_id_types_RUBY_ID_INTERNAL: ruby_id_types = 14;
540pub const ruby_id_types_RUBY_ID_SCOPE_SHIFT: ruby_id_types = 4;
541pub const ruby_id_types_RUBY_ID_SCOPE_MASK: ruby_id_types = 14;
542pub type ruby_id_types = ::std::os::raw::c_uint;
543pub const ruby_method_ids_idDot2: ruby_method_ids = 128;
544pub const ruby_method_ids_idDot3: ruby_method_ids = 129;
545pub const ruby_method_ids_idUPlus: ruby_method_ids = 130;
546pub const ruby_method_ids_idUMinus: ruby_method_ids = 131;
547pub const ruby_method_ids_idPow: ruby_method_ids = 132;
548pub const ruby_method_ids_idCmp: ruby_method_ids = 134;
549pub const ruby_method_ids_idPLUS: ruby_method_ids = 43;
550pub const ruby_method_ids_idMINUS: ruby_method_ids = 45;
551pub const ruby_method_ids_idMULT: ruby_method_ids = 42;
552pub const ruby_method_ids_idDIV: ruby_method_ids = 47;
553pub const ruby_method_ids_idMOD: ruby_method_ids = 37;
554pub const ruby_method_ids_idLTLT: ruby_method_ids = 135;
555pub const ruby_method_ids_idGTGT: ruby_method_ids = 136;
556pub const ruby_method_ids_idLT: ruby_method_ids = 60;
557pub const ruby_method_ids_idLE: ruby_method_ids = 137;
558pub const ruby_method_ids_idGT: ruby_method_ids = 62;
559pub const ruby_method_ids_idGE: ruby_method_ids = 138;
560pub const ruby_method_ids_idEq: ruby_method_ids = 139;
561pub const ruby_method_ids_idEqq: ruby_method_ids = 140;
562pub const ruby_method_ids_idNeq: ruby_method_ids = 141;
563pub const ruby_method_ids_idNot: ruby_method_ids = 33;
564pub const ruby_method_ids_idBackquote: ruby_method_ids = 96;
565pub const ruby_method_ids_idEqTilde: ruby_method_ids = 142;
566pub const ruby_method_ids_idNeqTilde: ruby_method_ids = 143;
567pub const ruby_method_ids_idAREF: ruby_method_ids = 144;
568pub const ruby_method_ids_idASET: ruby_method_ids = 145;
569pub const ruby_method_ids_idCOLON2: ruby_method_ids = 146;
570pub const ruby_method_ids_idANDOP: ruby_method_ids = 148;
571pub const ruby_method_ids_idOROP: ruby_method_ids = 149;
572pub const ruby_method_ids_idANDDOT: ruby_method_ids = 150;
573pub const ruby_method_ids_tPRESERVED_ID_BEGIN: ruby_method_ids = 150;
574pub const ruby_method_ids_idNULL: ruby_method_ids = 151;
575pub const ruby_method_ids_idEmptyP: ruby_method_ids = 152;
576pub const ruby_method_ids_idEqlP: ruby_method_ids = 153;
577pub const ruby_method_ids_idRespond_to: ruby_method_ids = 154;
578pub const ruby_method_ids_idRespond_to_missing: ruby_method_ids = 155;
579pub const ruby_method_ids_idIFUNC: ruby_method_ids = 156;
580pub const ruby_method_ids_idCFUNC: ruby_method_ids = 157;
581pub const ruby_method_ids_id_core_set_method_alias: ruby_method_ids = 158;
582pub const ruby_method_ids_id_core_set_variable_alias: ruby_method_ids = 159;
583pub const ruby_method_ids_id_core_undef_method: ruby_method_ids = 160;
584pub const ruby_method_ids_id_core_define_method: ruby_method_ids = 161;
585pub const ruby_method_ids_id_core_define_singleton_method: ruby_method_ids = 162;
586pub const ruby_method_ids_id_core_set_postexe: ruby_method_ids = 163;
587pub const ruby_method_ids_id_core_hash_from_ary: ruby_method_ids = 164;
588pub const ruby_method_ids_id_core_hash_merge_ary: ruby_method_ids = 165;
589pub const ruby_method_ids_id_core_hash_merge_ptr: ruby_method_ids = 166;
590pub const ruby_method_ids_id_core_hash_merge_kwd: ruby_method_ids = 167;
591pub const ruby_method_ids_id_debug_created_info: ruby_method_ids = 168;
592pub const ruby_method_ids_tPRESERVED_ID_END: ruby_method_ids = 169;
593pub const ruby_method_ids_tFreeze: ruby_method_ids = 170;
594pub const ruby_method_ids_tInspect: ruby_method_ids = 171;
595pub const ruby_method_ids_tIntern: ruby_method_ids = 172;
596pub const ruby_method_ids_tObject_id: ruby_method_ids = 173;
597pub const ruby_method_ids_tConst_missing: ruby_method_ids = 174;
598pub const ruby_method_ids_tMethodMissing: ruby_method_ids = 175;
599pub const ruby_method_ids_tMethod_added: ruby_method_ids = 176;
600pub const ruby_method_ids_tSingleton_method_added: ruby_method_ids = 177;
601pub const ruby_method_ids_tMethod_removed: ruby_method_ids = 178;
602pub const ruby_method_ids_tSingleton_method_removed: ruby_method_ids = 179;
603pub const ruby_method_ids_tMethod_undefined: ruby_method_ids = 180;
604pub const ruby_method_ids_tSingleton_method_undefined: ruby_method_ids = 181;
605pub const ruby_method_ids_tLength: ruby_method_ids = 182;
606pub const ruby_method_ids_tSize: ruby_method_ids = 183;
607pub const ruby_method_ids_tGets: ruby_method_ids = 184;
608pub const ruby_method_ids_tSucc: ruby_method_ids = 185;
609pub const ruby_method_ids_tEach: ruby_method_ids = 186;
610pub const ruby_method_ids_tProc: ruby_method_ids = 187;
611pub const ruby_method_ids_tLambda: ruby_method_ids = 188;
612pub const ruby_method_ids_tSend: ruby_method_ids = 189;
613pub const ruby_method_ids_t__send__: ruby_method_ids = 190;
614pub const ruby_method_ids_t__attached__: ruby_method_ids = 191;
615pub const ruby_method_ids_tInitialize: ruby_method_ids = 192;
616pub const ruby_method_ids_tInitialize_copy: ruby_method_ids = 193;
617pub const ruby_method_ids_tInitialize_clone: ruby_method_ids = 194;
618pub const ruby_method_ids_tInitialize_dup: ruby_method_ids = 195;
619pub const ruby_method_ids_tTo_int: ruby_method_ids = 196;
620pub const ruby_method_ids_tTo_ary: ruby_method_ids = 197;
621pub const ruby_method_ids_tTo_str: ruby_method_ids = 198;
622pub const ruby_method_ids_tTo_sym: ruby_method_ids = 199;
623pub const ruby_method_ids_tTo_hash: ruby_method_ids = 200;
624pub const ruby_method_ids_tTo_proc: ruby_method_ids = 201;
625pub const ruby_method_ids_tTo_io: ruby_method_ids = 202;
626pub const ruby_method_ids_tTo_a: ruby_method_ids = 203;
627pub const ruby_method_ids_tTo_s: ruby_method_ids = 204;
628pub const ruby_method_ids_tTo_i: ruby_method_ids = 205;
629pub const ruby_method_ids_tBt: ruby_method_ids = 206;
630pub const ruby_method_ids_tBt_locations: ruby_method_ids = 207;
631pub const ruby_method_ids_tCall: ruby_method_ids = 208;
632pub const ruby_method_ids_tMesg: ruby_method_ids = 209;
633pub const ruby_method_ids_tException: ruby_method_ids = 210;
634pub const ruby_method_ids_tUScore: ruby_method_ids = 211;
635pub const ruby_method_ids_tNEXT_ID: ruby_method_ids = 212;
636pub const ruby_method_ids_idFreeze: ruby_method_ids = 2721;
637pub const ruby_method_ids_idInspect: ruby_method_ids = 2737;
638pub const ruby_method_ids_idIntern: ruby_method_ids = 2753;
639pub const ruby_method_ids_idObject_id: ruby_method_ids = 2769;
640pub const ruby_method_ids_idConst_missing: ruby_method_ids = 2785;
641pub const ruby_method_ids_idMethodMissing: ruby_method_ids = 2801;
642pub const ruby_method_ids_idMethod_added: ruby_method_ids = 2817;
643pub const ruby_method_ids_idSingleton_method_added: ruby_method_ids = 2833;
644pub const ruby_method_ids_idMethod_removed: ruby_method_ids = 2849;
645pub const ruby_method_ids_idSingleton_method_removed: ruby_method_ids = 2865;
646pub const ruby_method_ids_idMethod_undefined: ruby_method_ids = 2881;
647pub const ruby_method_ids_idSingleton_method_undefined: ruby_method_ids = 2897;
648pub const ruby_method_ids_idLength: ruby_method_ids = 2913;
649pub const ruby_method_ids_idSize: ruby_method_ids = 2929;
650pub const ruby_method_ids_idGets: ruby_method_ids = 2945;
651pub const ruby_method_ids_idSucc: ruby_method_ids = 2961;
652pub const ruby_method_ids_idEach: ruby_method_ids = 2977;
653pub const ruby_method_ids_idProc: ruby_method_ids = 2993;
654pub const ruby_method_ids_idLambda: ruby_method_ids = 3009;
655pub const ruby_method_ids_idSend: ruby_method_ids = 3025;
656pub const ruby_method_ids_id__send__: ruby_method_ids = 3041;
657pub const ruby_method_ids_id__attached__: ruby_method_ids = 3057;
658pub const ruby_method_ids_idInitialize: ruby_method_ids = 3073;
659pub const ruby_method_ids_idInitialize_copy: ruby_method_ids = 3089;
660pub const ruby_method_ids_idInitialize_clone: ruby_method_ids = 3105;
661pub const ruby_method_ids_idInitialize_dup: ruby_method_ids = 3121;
662pub const ruby_method_ids_idTo_int: ruby_method_ids = 3137;
663pub const ruby_method_ids_idTo_ary: ruby_method_ids = 3153;
664pub const ruby_method_ids_idTo_str: ruby_method_ids = 3169;
665pub const ruby_method_ids_idTo_sym: ruby_method_ids = 3185;
666pub const ruby_method_ids_idTo_hash: ruby_method_ids = 3201;
667pub const ruby_method_ids_idTo_proc: ruby_method_ids = 3217;
668pub const ruby_method_ids_idTo_io: ruby_method_ids = 3233;
669pub const ruby_method_ids_idTo_a: ruby_method_ids = 3249;
670pub const ruby_method_ids_idTo_s: ruby_method_ids = 3265;
671pub const ruby_method_ids_idTo_i: ruby_method_ids = 3281;
672pub const ruby_method_ids_idBt: ruby_method_ids = 3297;
673pub const ruby_method_ids_idBt_locations: ruby_method_ids = 3313;
674pub const ruby_method_ids_idCall: ruby_method_ids = 3329;
675pub const ruby_method_ids_idMesg: ruby_method_ids = 3345;
676pub const ruby_method_ids_idException: ruby_method_ids = 3361;
677pub const ruby_method_ids_idUScore: ruby_method_ids = 3377;
678pub const ruby_method_ids_tLAST_OP_ID: ruby_method_ids = 168;
679pub const ruby_method_ids_idLAST_OP_ID: ruby_method_ids = 10;
680pub type ruby_method_ids = ::std::os::raw::c_uint;
681pub type rb_subclass_entry_t = rb_subclass_entry;
682#[repr(C)]
683#[derive(Debug, Copy, Clone)]
684pub struct rb_subclass_entry {
685    pub klass: VALUE,
686    pub next: *mut rb_subclass_entry_t,
687}
688pub type rb_serial_t = ::std::os::raw::c_ulonglong;
689#[repr(C)]
690#[derive(Debug, Copy, Clone)]
691pub struct rb_classext_struct {
692    pub iv_index_tbl: *mut st_table,
693    pub iv_tbl: *mut st_table,
694    pub const_tbl: *mut st_table,
695    pub callable_m_tbl: *mut rb_id_table,
696    pub subclasses: *mut rb_subclass_entry_t,
697    pub parent_subclasses: *mut *mut rb_subclass_entry_t,
698    pub module_subclasses: *mut *mut rb_subclass_entry_t,
699    pub class_serial: rb_serial_t,
700    pub origin_: VALUE,
701    pub refined_class: VALUE,
702    pub allocator: rb_alloc_func_t,
703}
704pub type rb_classext_t = rb_classext_struct;
705pub const imemo_type_imemo_none: imemo_type = 0;
706pub const imemo_type_imemo_cref: imemo_type = 1;
707pub const imemo_type_imemo_svar: imemo_type = 2;
708pub const imemo_type_imemo_throw_data: imemo_type = 3;
709pub const imemo_type_imemo_ifunc: imemo_type = 4;
710pub const imemo_type_imemo_memo: imemo_type = 5;
711pub const imemo_type_imemo_ment: imemo_type = 6;
712pub const imemo_type_imemo_iseq: imemo_type = 7;
713pub const imemo_type_imemo_mask: imemo_type = 7;
714pub type imemo_type = ::std::os::raw::c_uint;
715#[repr(C)]
716#[derive(Debug, Copy, Clone)]
717pub struct vm_svar {
718    pub flags: VALUE,
719    pub cref_or_me: VALUE,
720    pub lastline: VALUE,
721    pub backref: VALUE,
722    pub others: VALUE,
723}
724pub const rb_method_visibility_t_METHOD_VISI_UNDEF: rb_method_visibility_t = 0;
725pub const rb_method_visibility_t_METHOD_VISI_PUBLIC: rb_method_visibility_t = 1;
726pub const rb_method_visibility_t_METHOD_VISI_PRIVATE: rb_method_visibility_t = 2;
727pub const rb_method_visibility_t_METHOD_VISI_PROTECTED: rb_method_visibility_t = 3;
728pub const rb_method_visibility_t_METHOD_VISI_MASK: rb_method_visibility_t = 3;
729pub type rb_method_visibility_t = ::std::os::raw::c_uint;
730#[repr(C)]
731#[repr(align(4))]
732#[derive(Debug, Copy, Clone)]
733pub struct rb_scope_visi_struct {
734    pub _bitfield_align_1: [u8; 0],
735    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
736    pub __bindgen_padding_0: [u8; 3usize],
737}
738impl rb_scope_visi_struct {
739    #[inline]
740    pub fn method_visi(&self) -> rb_method_visibility_t {
741        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
742    }
743    #[inline]
744    pub fn set_method_visi(&mut self, val: rb_method_visibility_t) {
745        unsafe {
746            let val: u32 = ::std::mem::transmute(val);
747            self._bitfield_1.set(0usize, 3u8, val as u64)
748        }
749    }
750    #[inline]
751    pub unsafe fn method_visi_raw(this: *const Self) -> rb_method_visibility_t {
752        unsafe {
753            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
754                ::std::ptr::addr_of!((*this)._bitfield_1),
755                0usize,
756                3u8,
757            ) as u32)
758        }
759    }
760    #[inline]
761    pub unsafe fn set_method_visi_raw(this: *mut Self, val: rb_method_visibility_t) {
762        unsafe {
763            let val: u32 = ::std::mem::transmute(val);
764            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
765                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
766                0usize,
767                3u8,
768                val as u64,
769            )
770        }
771    }
772    #[inline]
773    pub fn module_func(&self) -> ::std::os::raw::c_uint {
774        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
775    }
776    #[inline]
777    pub fn set_module_func(&mut self, val: ::std::os::raw::c_uint) {
778        unsafe {
779            let val: u32 = ::std::mem::transmute(val);
780            self._bitfield_1.set(3usize, 1u8, val as u64)
781        }
782    }
783    #[inline]
784    pub unsafe fn module_func_raw(this: *const Self) -> ::std::os::raw::c_uint {
785        unsafe {
786            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
787                ::std::ptr::addr_of!((*this)._bitfield_1),
788                3usize,
789                1u8,
790            ) as u32)
791        }
792    }
793    #[inline]
794    pub unsafe fn set_module_func_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
795        unsafe {
796            let val: u32 = ::std::mem::transmute(val);
797            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
798                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
799                3usize,
800                1u8,
801                val as u64,
802            )
803        }
804    }
805    #[inline]
806    pub fn new_bitfield_1(
807        method_visi: rb_method_visibility_t,
808        module_func: ::std::os::raw::c_uint,
809    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
810        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
811        __bindgen_bitfield_unit.set(0usize, 3u8, {
812            let method_visi: u32 = unsafe { ::std::mem::transmute(method_visi) };
813            method_visi as u64
814        });
815        __bindgen_bitfield_unit.set(3usize, 1u8, {
816            let module_func: u32 = unsafe { ::std::mem::transmute(module_func) };
817            module_func as u64
818        });
819        __bindgen_bitfield_unit
820    }
821}
822pub type rb_scope_visibility_t = rb_scope_visi_struct;
823#[repr(C)]
824#[derive(Debug, Copy, Clone)]
825pub struct rb_cref_struct {
826    pub flags: VALUE,
827    pub refinements: VALUE,
828    pub klass: VALUE,
829    pub next: *mut rb_cref_struct,
830    pub scope_visi: rb_scope_visibility_t,
831}
832pub type rb_cref_t = rb_cref_struct;
833#[repr(C)]
834#[derive(Debug, Copy, Clone)]
835pub struct rb_method_entry_struct {
836    pub flags: VALUE,
837    pub defined_class: VALUE,
838    pub def: *mut rb_method_definition_struct,
839    pub called_id: ID,
840    pub owner: VALUE,
841}
842#[repr(C)]
843#[derive(Debug, Copy, Clone)]
844pub struct rb_callable_method_entry_struct {
845    pub flags: VALUE,
846    pub defined_class: VALUE,
847    pub def: *mut rb_method_definition_struct,
848    pub called_id: ID,
849    pub owner: VALUE,
850}
851pub type rb_callable_method_entry_t = rb_callable_method_entry_struct;
852pub const rb_method_type_t_VM_METHOD_TYPE_ISEQ: rb_method_type_t = 0;
853pub const rb_method_type_t_VM_METHOD_TYPE_CFUNC: rb_method_type_t = 1;
854pub const rb_method_type_t_VM_METHOD_TYPE_ATTRSET: rb_method_type_t = 2;
855pub const rb_method_type_t_VM_METHOD_TYPE_IVAR: rb_method_type_t = 3;
856pub const rb_method_type_t_VM_METHOD_TYPE_BMETHOD: rb_method_type_t = 4;
857pub const rb_method_type_t_VM_METHOD_TYPE_ZSUPER: rb_method_type_t = 5;
858pub const rb_method_type_t_VM_METHOD_TYPE_ALIAS: rb_method_type_t = 6;
859pub const rb_method_type_t_VM_METHOD_TYPE_UNDEF: rb_method_type_t = 7;
860pub const rb_method_type_t_VM_METHOD_TYPE_NOTIMPLEMENTED: rb_method_type_t = 8;
861pub const rb_method_type_t_VM_METHOD_TYPE_OPTIMIZED: rb_method_type_t = 9;
862pub const rb_method_type_t_VM_METHOD_TYPE_MISSING: rb_method_type_t = 10;
863pub const rb_method_type_t_VM_METHOD_TYPE_REFINED: rb_method_type_t = 11;
864pub type rb_method_type_t = ::std::os::raw::c_uint;
865pub type rb_iseq_t = rb_iseq_struct;
866#[repr(C)]
867#[derive(Debug, Copy, Clone)]
868pub struct rb_method_iseq_struct {
869    pub iseqptr: *const rb_iseq_t,
870    pub cref: *mut rb_cref_t,
871}
872pub type rb_method_iseq_t = rb_method_iseq_struct;
873#[repr(C)]
874#[derive(Debug, Copy, Clone)]
875pub struct rb_method_cfunc_struct {
876    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
877    pub invoker: ::std::option::Option<
878        unsafe extern "C" fn(
879            func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
880            recv: VALUE,
881            argc: ::std::os::raw::c_int,
882            argv: *const VALUE,
883        ) -> VALUE,
884    >,
885    pub argc: ::std::os::raw::c_int,
886}
887pub type rb_method_cfunc_t = rb_method_cfunc_struct;
888#[repr(C)]
889#[derive(Debug, Copy, Clone)]
890pub struct rb_method_attr_struct {
891    pub id: ID,
892    pub location: VALUE,
893}
894pub type rb_method_attr_t = rb_method_attr_struct;
895#[repr(C)]
896#[derive(Debug, Copy, Clone)]
897pub struct rb_method_alias_struct {
898    pub original_me: *const rb_method_entry_struct,
899}
900pub type rb_method_alias_t = rb_method_alias_struct;
901#[repr(C)]
902#[derive(Debug, Copy, Clone)]
903pub struct rb_method_refined_struct {
904    pub orig_me: *const rb_method_entry_struct,
905    pub owner: VALUE,
906}
907pub type rb_method_refined_t = rb_method_refined_struct;
908#[repr(C)]
909#[derive(Copy, Clone)]
910pub struct rb_method_definition_struct {
911    pub _bitfield_align_1: [u32; 0],
912    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 12usize]>,
913    pub body: rb_method_definition_struct__bindgen_ty_1,
914    pub original_id: ID,
915}
916#[repr(C)]
917#[derive(Copy, Clone)]
918pub union rb_method_definition_struct__bindgen_ty_1 {
919    pub iseq: rb_method_iseq_t,
920    pub cfunc: rb_method_cfunc_t,
921    pub attr: rb_method_attr_t,
922    pub alias: rb_method_alias_t,
923    pub refined: rb_method_refined_t,
924    pub proc_: VALUE,
925    pub optimize_type: rb_method_definition_struct__bindgen_ty_1_method_optimized_type,
926}
927pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE_SEND : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 0 ;
928pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE_CALL : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 1 ;
929pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE__MAX : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 2 ;
930pub type rb_method_definition_struct__bindgen_ty_1_method_optimized_type = ::std::os::raw::c_uint;
931impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
932    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
933        write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
934    }
935}
936impl rb_method_definition_struct {
937    #[inline]
938    pub fn type_(&self) -> rb_method_type_t {
939        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
940    }
941    #[inline]
942    pub fn set_type(&mut self, val: rb_method_type_t) {
943        unsafe {
944            let val: u32 = ::std::mem::transmute(val);
945            self._bitfield_1.set(0usize, 8u8, val as u64)
946        }
947    }
948    #[inline]
949    pub unsafe fn type__raw(this: *const Self) -> rb_method_type_t {
950        unsafe {
951            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 12usize]>>::raw_get(
952                ::std::ptr::addr_of!((*this)._bitfield_1),
953                0usize,
954                8u8,
955            ) as u32)
956        }
957    }
958    #[inline]
959    pub unsafe fn set_type_raw(this: *mut Self, val: rb_method_type_t) {
960        unsafe {
961            let val: u32 = ::std::mem::transmute(val);
962            <__BindgenBitfieldUnit<[u8; 12usize]>>::raw_set(
963                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
964                0usize,
965                8u8,
966                val as u64,
967            )
968        }
969    }
970    #[inline]
971    pub fn alias_count(&self) -> ::std::os::raw::c_int {
972        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 28u8) as u32) }
973    }
974    #[inline]
975    pub fn set_alias_count(&mut self, val: ::std::os::raw::c_int) {
976        unsafe {
977            let val: u32 = ::std::mem::transmute(val);
978            self._bitfield_1.set(32usize, 28u8, val as u64)
979        }
980    }
981    #[inline]
982    pub unsafe fn alias_count_raw(this: *const Self) -> ::std::os::raw::c_int {
983        unsafe {
984            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 12usize]>>::raw_get(
985                ::std::ptr::addr_of!((*this)._bitfield_1),
986                32usize,
987                28u8,
988            ) as u32)
989        }
990    }
991    #[inline]
992    pub unsafe fn set_alias_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
993        unsafe {
994            let val: u32 = ::std::mem::transmute(val);
995            <__BindgenBitfieldUnit<[u8; 12usize]>>::raw_set(
996                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
997                32usize,
998                28u8,
999                val as u64,
1000            )
1001        }
1002    }
1003    #[inline]
1004    pub fn complemented_count(&self) -> ::std::os::raw::c_int {
1005        unsafe { ::std::mem::transmute(self._bitfield_1.get(64usize, 28u8) as u32) }
1006    }
1007    #[inline]
1008    pub fn set_complemented_count(&mut self, val: ::std::os::raw::c_int) {
1009        unsafe {
1010            let val: u32 = ::std::mem::transmute(val);
1011            self._bitfield_1.set(64usize, 28u8, val as u64)
1012        }
1013    }
1014    #[inline]
1015    pub unsafe fn complemented_count_raw(this: *const Self) -> ::std::os::raw::c_int {
1016        unsafe {
1017            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 12usize]>>::raw_get(
1018                ::std::ptr::addr_of!((*this)._bitfield_1),
1019                64usize,
1020                28u8,
1021            ) as u32)
1022        }
1023    }
1024    #[inline]
1025    pub unsafe fn set_complemented_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
1026        unsafe {
1027            let val: u32 = ::std::mem::transmute(val);
1028            <__BindgenBitfieldUnit<[u8; 12usize]>>::raw_set(
1029                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1030                64usize,
1031                28u8,
1032                val as u64,
1033            )
1034        }
1035    }
1036    #[inline]
1037    pub fn new_bitfield_1(
1038        type_: rb_method_type_t,
1039        alias_count: ::std::os::raw::c_int,
1040        complemented_count: ::std::os::raw::c_int,
1041    ) -> __BindgenBitfieldUnit<[u8; 12usize]> {
1042        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 12usize]> = Default::default();
1043        __bindgen_bitfield_unit.set(0usize, 8u8, {
1044            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
1045            type_ as u64
1046        });
1047        __bindgen_bitfield_unit.set(32usize, 28u8, {
1048            let alias_count: u32 = unsafe { ::std::mem::transmute(alias_count) };
1049            alias_count as u64
1050        });
1051        __bindgen_bitfield_unit.set(64usize, 28u8, {
1052            let complemented_count: u32 = unsafe { ::std::mem::transmute(complemented_count) };
1053            complemented_count as u64
1054        });
1055        __bindgen_bitfield_unit
1056    }
1057}
1058pub type rb_atomic_t = ::std::os::raw::c_uint;
1059#[repr(C)]
1060#[derive(Debug, Copy, Clone)]
1061pub struct list_node {
1062    pub next: *mut list_node,
1063    pub prev: *mut list_node,
1064}
1065#[repr(C)]
1066#[derive(Debug, Copy, Clone)]
1067pub struct list_head {
1068    pub n: list_node,
1069}
1070pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
1071pub type rb_nativethread_id_t = pthread_t;
1072pub type rb_nativethread_lock_t = pthread_mutex_t;
1073#[repr(C)]
1074#[derive(Copy, Clone)]
1075pub struct rb_thread_cond_struct {
1076    pub cond: pthread_cond_t,
1077    pub clockid: clockid_t,
1078}
1079impl ::std::fmt::Debug for rb_thread_cond_struct {
1080    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1081        write!(
1082            f,
1083            "rb_thread_cond_struct {{ cond: {:?}, clockid: {:?} }}",
1084            self.cond, self.clockid
1085        )
1086    }
1087}
1088pub type rb_nativethread_cond_t = rb_thread_cond_struct;
1089#[repr(C)]
1090#[derive(Copy, Clone)]
1091pub struct native_thread_data_struct {
1092    pub ubf_list: list_node,
1093    pub sleep_cond: rb_nativethread_cond_t,
1094}
1095impl ::std::fmt::Debug for native_thread_data_struct {
1096    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1097        write!(
1098            f,
1099            "native_thread_data_struct {{ ubf_list: {:?}, sleep_cond: {:?} }}",
1100            self.ubf_list, self.sleep_cond
1101        )
1102    }
1103}
1104pub type native_thread_data_t = native_thread_data_struct;
1105#[repr(C)]
1106#[derive(Copy, Clone)]
1107pub struct rb_global_vm_lock_struct {
1108    pub acquired: ::std::os::raw::c_ulong,
1109    pub lock: rb_nativethread_lock_t,
1110    pub waiting: ::std::os::raw::c_ulong,
1111    pub cond: rb_nativethread_cond_t,
1112    pub switch_cond: rb_nativethread_cond_t,
1113    pub switch_wait_cond: rb_nativethread_cond_t,
1114    pub need_yield: ::std::os::raw::c_int,
1115    pub wait_yield: ::std::os::raw::c_int,
1116}
1117impl ::std::fmt::Debug for rb_global_vm_lock_struct {
1118    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1119        write ! (f , "rb_global_vm_lock_struct {{ acquired: {:?}, lock: {:?}, waiting: {:?}, cond: {:?}, switch_cond: {:?}, switch_wait_cond: {:?}, need_yield: {:?}, wait_yield: {:?} }}" , self . acquired , self . lock , self . waiting , self . cond , self . switch_cond , self . switch_wait_cond , self . need_yield , self . wait_yield)
1120    }
1121}
1122pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
1123#[repr(C)]
1124#[derive(Debug, Copy, Clone)]
1125pub struct __jmp_buf_tag {
1126    pub __jmpbuf: __jmp_buf,
1127    pub __mask_was_saved: ::std::os::raw::c_int,
1128    pub __saved_mask: __sigset_t,
1129}
1130pub type jmp_buf = [__jmp_buf_tag; 1usize];
1131pub type rb_compile_option_t = rb_compile_option_struct;
1132#[repr(C)]
1133#[derive(Copy, Clone)]
1134pub struct iseq_inline_cache_entry {
1135    pub ic_serial: rb_serial_t,
1136    pub ic_cref: *const rb_cref_t,
1137    pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
1138}
1139#[repr(C)]
1140#[derive(Copy, Clone)]
1141pub union iseq_inline_cache_entry__bindgen_ty_1 {
1142    pub index: usize,
1143    pub value: VALUE,
1144}
1145impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
1146    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1147        write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
1148    }
1149}
1150impl ::std::fmt::Debug for iseq_inline_cache_entry {
1151    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1152        write!(
1153            f,
1154            "iseq_inline_cache_entry {{ ic_serial: {:?}, ic_cref: {:?}, ic_value: {:?} }}",
1155            self.ic_serial, self.ic_cref, self.ic_value
1156        )
1157    }
1158}
1159#[repr(C)]
1160#[derive(Copy, Clone)]
1161pub union iseq_inline_storage_entry {
1162    pub once: iseq_inline_storage_entry__bindgen_ty_1,
1163    pub cache: iseq_inline_cache_entry,
1164}
1165#[repr(C)]
1166#[derive(Debug, Copy, Clone)]
1167pub struct iseq_inline_storage_entry__bindgen_ty_1 {
1168    pub running_thread: *mut rb_thread_struct,
1169    pub value: VALUE,
1170}
1171impl ::std::fmt::Debug for iseq_inline_storage_entry {
1172    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1173        write!(f, "iseq_inline_storage_entry {{ union }}")
1174    }
1175}
1176pub const method_missing_reason_MISSING_NOENTRY: method_missing_reason = 0;
1177pub const method_missing_reason_MISSING_PRIVATE: method_missing_reason = 1;
1178pub const method_missing_reason_MISSING_PROTECTED: method_missing_reason = 2;
1179pub const method_missing_reason_MISSING_VCALL: method_missing_reason = 4;
1180pub const method_missing_reason_MISSING_SUPER: method_missing_reason = 8;
1181pub const method_missing_reason_MISSING_MISSING: method_missing_reason = 16;
1182pub const method_missing_reason_MISSING_NONE: method_missing_reason = 32;
1183pub type method_missing_reason = ::std::os::raw::c_uint;
1184#[repr(C)]
1185#[derive(Debug, Copy, Clone)]
1186pub struct rb_call_info {
1187    pub mid: ID,
1188    pub flag: ::std::os::raw::c_uint,
1189    pub orig_argc: ::std::os::raw::c_int,
1190}
1191#[repr(C)]
1192#[derive(Debug, Copy, Clone)]
1193pub struct rb_calling_info {
1194    pub blockptr: *mut rb_block_struct,
1195    pub recv: VALUE,
1196    pub argc: ::std::os::raw::c_int,
1197}
1198pub type vm_call_handler = ::std::option::Option<
1199    unsafe extern "C" fn(
1200        th: *mut rb_thread_struct,
1201        cfp: *mut rb_control_frame_struct,
1202        calling: *mut rb_calling_info,
1203        ci: *const rb_call_info,
1204        cc: *mut rb_call_cache,
1205    ) -> VALUE,
1206>;
1207#[repr(C)]
1208#[derive(Copy, Clone)]
1209pub struct rb_call_cache {
1210    pub method_state: rb_serial_t,
1211    pub class_serial: rb_serial_t,
1212    pub me: *const rb_callable_method_entry_t,
1213    pub call: vm_call_handler,
1214    pub aux: rb_call_cache__bindgen_ty_1,
1215}
1216#[repr(C)]
1217#[derive(Copy, Clone)]
1218pub union rb_call_cache__bindgen_ty_1 {
1219    pub index: ::std::os::raw::c_uint,
1220    pub method_missing_reason: method_missing_reason,
1221    pub inc_sp: ::std::os::raw::c_int,
1222}
1223impl ::std::fmt::Debug for rb_call_cache__bindgen_ty_1 {
1224    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1225        write!(f, "rb_call_cache__bindgen_ty_1 {{ union }}")
1226    }
1227}
1228impl ::std::fmt::Debug for rb_call_cache {
1229    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1230        write ! (f , "rb_call_cache {{ method_state: {:?}, class_serial: {:?}, me: {:?}, call: {:?}, aux: {:?} }}" , self . method_state , self . class_serial , self . me , self . call , self . aux)
1231    }
1232}
1233#[repr(C)]
1234#[derive(Debug, Copy, Clone)]
1235pub struct rb_iseq_location_struct {
1236    pub path: VALUE,
1237    pub absolute_path: VALUE,
1238    pub base_label: VALUE,
1239    pub label: VALUE,
1240    pub first_lineno: VALUE,
1241}
1242pub type rb_iseq_location_t = rb_iseq_location_struct;
1243#[repr(C)]
1244#[derive(Debug, Copy, Clone)]
1245pub struct rb_iseq_constant_body {
1246    pub type_: rb_iseq_constant_body_iseq_type,
1247    pub stack_max: ::std::os::raw::c_uint,
1248    pub local_size: ::std::os::raw::c_uint,
1249    pub iseq_size: ::std::os::raw::c_uint,
1250    pub iseq_encoded: *const VALUE,
1251    pub param: rb_iseq_constant_body__bindgen_ty_1,
1252    pub location: rb_iseq_location_t,
1253    pub line_info_table: *const iseq_line_info_entry,
1254    pub local_table: *const ID,
1255    pub catch_table: *const iseq_catch_table,
1256    pub parent_iseq: *const rb_iseq_struct,
1257    pub local_iseq: *mut rb_iseq_struct,
1258    pub is_entries: *mut iseq_inline_storage_entry,
1259    pub ci_entries: *mut rb_call_info,
1260    pub cc_entries: *mut rb_call_cache,
1261    pub mark_ary: VALUE,
1262    pub local_table_size: ::std::os::raw::c_uint,
1263    pub is_size: ::std::os::raw::c_uint,
1264    pub ci_size: ::std::os::raw::c_uint,
1265    pub ci_kw_size: ::std::os::raw::c_uint,
1266    pub line_info_size: ::std::os::raw::c_uint,
1267}
1268pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_TOP: rb_iseq_constant_body_iseq_type = 0;
1269pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_constant_body_iseq_type = 1;
1270pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_constant_body_iseq_type = 2;
1271pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_constant_body_iseq_type = 3;
1272pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_constant_body_iseq_type = 4;
1273pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_constant_body_iseq_type = 5;
1274pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_constant_body_iseq_type = 6;
1275pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_constant_body_iseq_type = 7;
1276pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_DEFINED_GUARD: rb_iseq_constant_body_iseq_type =
1277    8;
1278pub type rb_iseq_constant_body_iseq_type = ::std::os::raw::c_uint;
1279#[repr(C)]
1280#[derive(Debug, Copy, Clone)]
1281pub struct rb_iseq_constant_body__bindgen_ty_1 {
1282    pub flags: rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1,
1283    pub size: ::std::os::raw::c_uint,
1284    pub lead_num: ::std::os::raw::c_int,
1285    pub opt_num: ::std::os::raw::c_int,
1286    pub rest_start: ::std::os::raw::c_int,
1287    pub post_start: ::std::os::raw::c_int,
1288    pub post_num: ::std::os::raw::c_int,
1289    pub block_start: ::std::os::raw::c_int,
1290    pub opt_table: *const VALUE,
1291    pub keyword: *const rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword,
1292}
1293#[repr(C)]
1294#[repr(align(4))]
1295#[derive(Debug, Copy, Clone)]
1296pub struct rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1297    pub _bitfield_align_1: [u8; 0],
1298    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1299    pub __bindgen_padding_0: [u8; 3usize],
1300}
1301impl rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1302    #[inline]
1303    pub fn has_lead(&self) -> ::std::os::raw::c_uint {
1304        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1305    }
1306    #[inline]
1307    pub fn set_has_lead(&mut self, val: ::std::os::raw::c_uint) {
1308        unsafe {
1309            let val: u32 = ::std::mem::transmute(val);
1310            self._bitfield_1.set(0usize, 1u8, val as u64)
1311        }
1312    }
1313    #[inline]
1314    pub unsafe fn has_lead_raw(this: *const Self) -> ::std::os::raw::c_uint {
1315        unsafe {
1316            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1317                ::std::ptr::addr_of!((*this)._bitfield_1),
1318                0usize,
1319                1u8,
1320            ) as u32)
1321        }
1322    }
1323    #[inline]
1324    pub unsafe fn set_has_lead_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1325        unsafe {
1326            let val: u32 = ::std::mem::transmute(val);
1327            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1328                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1329                0usize,
1330                1u8,
1331                val as u64,
1332            )
1333        }
1334    }
1335    #[inline]
1336    pub fn has_opt(&self) -> ::std::os::raw::c_uint {
1337        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1338    }
1339    #[inline]
1340    pub fn set_has_opt(&mut self, val: ::std::os::raw::c_uint) {
1341        unsafe {
1342            let val: u32 = ::std::mem::transmute(val);
1343            self._bitfield_1.set(1usize, 1u8, val as u64)
1344        }
1345    }
1346    #[inline]
1347    pub unsafe fn has_opt_raw(this: *const Self) -> ::std::os::raw::c_uint {
1348        unsafe {
1349            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1350                ::std::ptr::addr_of!((*this)._bitfield_1),
1351                1usize,
1352                1u8,
1353            ) as u32)
1354        }
1355    }
1356    #[inline]
1357    pub unsafe fn set_has_opt_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1358        unsafe {
1359            let val: u32 = ::std::mem::transmute(val);
1360            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1361                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1362                1usize,
1363                1u8,
1364                val as u64,
1365            )
1366        }
1367    }
1368    #[inline]
1369    pub fn has_rest(&self) -> ::std::os::raw::c_uint {
1370        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1371    }
1372    #[inline]
1373    pub fn set_has_rest(&mut self, val: ::std::os::raw::c_uint) {
1374        unsafe {
1375            let val: u32 = ::std::mem::transmute(val);
1376            self._bitfield_1.set(2usize, 1u8, val as u64)
1377        }
1378    }
1379    #[inline]
1380    pub unsafe fn has_rest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1381        unsafe {
1382            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1383                ::std::ptr::addr_of!((*this)._bitfield_1),
1384                2usize,
1385                1u8,
1386            ) as u32)
1387        }
1388    }
1389    #[inline]
1390    pub unsafe fn set_has_rest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1391        unsafe {
1392            let val: u32 = ::std::mem::transmute(val);
1393            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1394                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1395                2usize,
1396                1u8,
1397                val as u64,
1398            )
1399        }
1400    }
1401    #[inline]
1402    pub fn has_post(&self) -> ::std::os::raw::c_uint {
1403        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
1404    }
1405    #[inline]
1406    pub fn set_has_post(&mut self, val: ::std::os::raw::c_uint) {
1407        unsafe {
1408            let val: u32 = ::std::mem::transmute(val);
1409            self._bitfield_1.set(3usize, 1u8, val as u64)
1410        }
1411    }
1412    #[inline]
1413    pub unsafe fn has_post_raw(this: *const Self) -> ::std::os::raw::c_uint {
1414        unsafe {
1415            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1416                ::std::ptr::addr_of!((*this)._bitfield_1),
1417                3usize,
1418                1u8,
1419            ) as u32)
1420        }
1421    }
1422    #[inline]
1423    pub unsafe fn set_has_post_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1424        unsafe {
1425            let val: u32 = ::std::mem::transmute(val);
1426            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1427                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1428                3usize,
1429                1u8,
1430                val as u64,
1431            )
1432        }
1433    }
1434    #[inline]
1435    pub fn has_kw(&self) -> ::std::os::raw::c_uint {
1436        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1437    }
1438    #[inline]
1439    pub fn set_has_kw(&mut self, val: ::std::os::raw::c_uint) {
1440        unsafe {
1441            let val: u32 = ::std::mem::transmute(val);
1442            self._bitfield_1.set(4usize, 1u8, val as u64)
1443        }
1444    }
1445    #[inline]
1446    pub unsafe fn has_kw_raw(this: *const Self) -> ::std::os::raw::c_uint {
1447        unsafe {
1448            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1449                ::std::ptr::addr_of!((*this)._bitfield_1),
1450                4usize,
1451                1u8,
1452            ) as u32)
1453        }
1454    }
1455    #[inline]
1456    pub unsafe fn set_has_kw_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1457        unsafe {
1458            let val: u32 = ::std::mem::transmute(val);
1459            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1460                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1461                4usize,
1462                1u8,
1463                val as u64,
1464            )
1465        }
1466    }
1467    #[inline]
1468    pub fn has_kwrest(&self) -> ::std::os::raw::c_uint {
1469        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1470    }
1471    #[inline]
1472    pub fn set_has_kwrest(&mut self, val: ::std::os::raw::c_uint) {
1473        unsafe {
1474            let val: u32 = ::std::mem::transmute(val);
1475            self._bitfield_1.set(5usize, 1u8, val as u64)
1476        }
1477    }
1478    #[inline]
1479    pub unsafe fn has_kwrest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1480        unsafe {
1481            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1482                ::std::ptr::addr_of!((*this)._bitfield_1),
1483                5usize,
1484                1u8,
1485            ) as u32)
1486        }
1487    }
1488    #[inline]
1489    pub unsafe fn set_has_kwrest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1490        unsafe {
1491            let val: u32 = ::std::mem::transmute(val);
1492            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1493                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1494                5usize,
1495                1u8,
1496                val as u64,
1497            )
1498        }
1499    }
1500    #[inline]
1501    pub fn has_block(&self) -> ::std::os::raw::c_uint {
1502        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
1503    }
1504    #[inline]
1505    pub fn set_has_block(&mut self, val: ::std::os::raw::c_uint) {
1506        unsafe {
1507            let val: u32 = ::std::mem::transmute(val);
1508            self._bitfield_1.set(6usize, 1u8, val as u64)
1509        }
1510    }
1511    #[inline]
1512    pub unsafe fn has_block_raw(this: *const Self) -> ::std::os::raw::c_uint {
1513        unsafe {
1514            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1515                ::std::ptr::addr_of!((*this)._bitfield_1),
1516                6usize,
1517                1u8,
1518            ) as u32)
1519        }
1520    }
1521    #[inline]
1522    pub unsafe fn set_has_block_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1523        unsafe {
1524            let val: u32 = ::std::mem::transmute(val);
1525            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1526                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1527                6usize,
1528                1u8,
1529                val as u64,
1530            )
1531        }
1532    }
1533    #[inline]
1534    pub fn ambiguous_param0(&self) -> ::std::os::raw::c_uint {
1535        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
1536    }
1537    #[inline]
1538    pub fn set_ambiguous_param0(&mut self, val: ::std::os::raw::c_uint) {
1539        unsafe {
1540            let val: u32 = ::std::mem::transmute(val);
1541            self._bitfield_1.set(7usize, 1u8, val as u64)
1542        }
1543    }
1544    #[inline]
1545    pub unsafe fn ambiguous_param0_raw(this: *const Self) -> ::std::os::raw::c_uint {
1546        unsafe {
1547            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1548                ::std::ptr::addr_of!((*this)._bitfield_1),
1549                7usize,
1550                1u8,
1551            ) as u32)
1552        }
1553    }
1554    #[inline]
1555    pub unsafe fn set_ambiguous_param0_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1556        unsafe {
1557            let val: u32 = ::std::mem::transmute(val);
1558            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1559                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1560                7usize,
1561                1u8,
1562                val as u64,
1563            )
1564        }
1565    }
1566    #[inline]
1567    pub fn new_bitfield_1(
1568        has_lead: ::std::os::raw::c_uint,
1569        has_opt: ::std::os::raw::c_uint,
1570        has_rest: ::std::os::raw::c_uint,
1571        has_post: ::std::os::raw::c_uint,
1572        has_kw: ::std::os::raw::c_uint,
1573        has_kwrest: ::std::os::raw::c_uint,
1574        has_block: ::std::os::raw::c_uint,
1575        ambiguous_param0: ::std::os::raw::c_uint,
1576    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1577        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1578        __bindgen_bitfield_unit.set(0usize, 1u8, {
1579            let has_lead: u32 = unsafe { ::std::mem::transmute(has_lead) };
1580            has_lead as u64
1581        });
1582        __bindgen_bitfield_unit.set(1usize, 1u8, {
1583            let has_opt: u32 = unsafe { ::std::mem::transmute(has_opt) };
1584            has_opt as u64
1585        });
1586        __bindgen_bitfield_unit.set(2usize, 1u8, {
1587            let has_rest: u32 = unsafe { ::std::mem::transmute(has_rest) };
1588            has_rest as u64
1589        });
1590        __bindgen_bitfield_unit.set(3usize, 1u8, {
1591            let has_post: u32 = unsafe { ::std::mem::transmute(has_post) };
1592            has_post as u64
1593        });
1594        __bindgen_bitfield_unit.set(4usize, 1u8, {
1595            let has_kw: u32 = unsafe { ::std::mem::transmute(has_kw) };
1596            has_kw as u64
1597        });
1598        __bindgen_bitfield_unit.set(5usize, 1u8, {
1599            let has_kwrest: u32 = unsafe { ::std::mem::transmute(has_kwrest) };
1600            has_kwrest as u64
1601        });
1602        __bindgen_bitfield_unit.set(6usize, 1u8, {
1603            let has_block: u32 = unsafe { ::std::mem::transmute(has_block) };
1604            has_block as u64
1605        });
1606        __bindgen_bitfield_unit.set(7usize, 1u8, {
1607            let ambiguous_param0: u32 = unsafe { ::std::mem::transmute(ambiguous_param0) };
1608            ambiguous_param0 as u64
1609        });
1610        __bindgen_bitfield_unit
1611    }
1612}
1613#[repr(C)]
1614#[derive(Debug, Copy, Clone)]
1615pub struct rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword {
1616    pub num: ::std::os::raw::c_int,
1617    pub required_num: ::std::os::raw::c_int,
1618    pub bits_start: ::std::os::raw::c_int,
1619    pub rest_start: ::std::os::raw::c_int,
1620    pub table: *const ID,
1621    pub default_values: *const VALUE,
1622}
1623#[repr(C)]
1624#[derive(Copy, Clone)]
1625pub struct rb_iseq_struct {
1626    pub flags: VALUE,
1627    pub reserved1: VALUE,
1628    pub body: *mut rb_iseq_constant_body,
1629    pub aux: rb_iseq_struct__bindgen_ty_1,
1630}
1631#[repr(C)]
1632#[derive(Copy, Clone)]
1633pub union rb_iseq_struct__bindgen_ty_1 {
1634    pub compile_data: *mut iseq_compile_data,
1635    pub loader: rb_iseq_struct__bindgen_ty_1__bindgen_ty_1,
1636}
1637#[repr(C)]
1638#[derive(Debug, Copy, Clone)]
1639pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_1 {
1640    pub obj: VALUE,
1641    pub index: ::std::os::raw::c_int,
1642}
1643impl ::std::fmt::Debug for rb_iseq_struct__bindgen_ty_1 {
1644    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1645        write!(f, "rb_iseq_struct__bindgen_ty_1 {{ union }}")
1646    }
1647}
1648impl ::std::fmt::Debug for rb_iseq_struct {
1649    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1650        write!(
1651            f,
1652            "rb_iseq_struct {{ flags: {:?}, reserved1: {:?}, body: {:?}, aux: {:?} }}",
1653            self.flags, self.reserved1, self.body, self.aux
1654        )
1655    }
1656}
1657pub type rb_vm_at_exit_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut rb_vm_struct)>;
1658#[repr(C)]
1659#[derive(Debug, Copy, Clone)]
1660pub struct rb_at_exit_list {
1661    pub func: rb_vm_at_exit_func,
1662    pub next: *mut rb_at_exit_list,
1663}
1664#[repr(C)]
1665#[derive(Debug, Copy, Clone)]
1666pub struct rb_objspace {
1667    _unused: [u8; 0],
1668}
1669#[repr(C)]
1670#[derive(Debug, Copy, Clone)]
1671pub struct rb_hook_list_struct {
1672    pub hooks: *mut rb_event_hook_struct,
1673    pub events: rb_event_flag_t,
1674    pub need_clean: ::std::os::raw::c_int,
1675}
1676pub type rb_hook_list_t = rb_hook_list_struct;
1677#[repr(C)]
1678#[derive(Copy, Clone)]
1679pub struct rb_vm_struct {
1680    pub self_: VALUE,
1681    pub gvl: rb_global_vm_lock_t,
1682    pub thread_destruct_lock: rb_nativethread_lock_t,
1683    pub main_thread: *mut rb_thread_struct,
1684    pub running_thread: *mut rb_thread_struct,
1685    pub waiting_fds: list_head,
1686    pub living_threads: list_head,
1687    pub living_thread_num: usize,
1688    pub thgroup_default: VALUE,
1689    pub running: ::std::os::raw::c_int,
1690    pub thread_abort_on_exception: ::std::os::raw::c_int,
1691    pub trace_running: ::std::os::raw::c_int,
1692    pub sleeper: ::std::os::raw::c_int,
1693    pub mark_object_ary: VALUE,
1694    pub special_exceptions: [VALUE; 4usize],
1695    pub top_self: VALUE,
1696    pub load_path: VALUE,
1697    pub load_path_snapshot: VALUE,
1698    pub load_path_check_cache: VALUE,
1699    pub expanded_load_path: VALUE,
1700    pub loaded_features: VALUE,
1701    pub loaded_features_snapshot: VALUE,
1702    pub loaded_features_index: *mut st_table,
1703    pub loading_table: *mut st_table,
1704    pub trap_list: [rb_vm_struct__bindgen_ty_1; 65usize],
1705    pub event_hooks: rb_hook_list_t,
1706    pub ensure_rollback_table: *mut st_table,
1707    pub postponed_job_buffer: *mut rb_postponed_job_struct,
1708    pub postponed_job_index: ::std::os::raw::c_int,
1709    pub src_encoding_index: ::std::os::raw::c_int,
1710    pub verbose: VALUE,
1711    pub debug: VALUE,
1712    pub orig_progname: VALUE,
1713    pub progname: VALUE,
1714    pub coverages: VALUE,
1715    pub defined_module_hash: VALUE,
1716    pub objspace: *mut rb_objspace,
1717    pub at_exit: *mut rb_at_exit_list,
1718    pub defined_strings: *mut VALUE,
1719    pub frozen_strings: *mut st_table,
1720    pub default_params: rb_vm_struct__bindgen_ty_2,
1721    pub redefined_flag: [::std::os::raw::c_short; 22usize],
1722}
1723#[repr(C)]
1724#[derive(Debug, Copy, Clone)]
1725pub struct rb_vm_struct__bindgen_ty_1 {
1726    pub cmd: VALUE,
1727    pub safe: ::std::os::raw::c_int,
1728}
1729#[repr(C)]
1730#[derive(Debug, Copy, Clone)]
1731pub struct rb_vm_struct__bindgen_ty_2 {
1732    pub thread_vm_stack_size: usize,
1733    pub thread_machine_stack_size: usize,
1734    pub fiber_vm_stack_size: usize,
1735    pub fiber_machine_stack_size: usize,
1736}
1737impl ::std::fmt::Debug for rb_vm_struct {
1738    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1739        write ! (f , "rb_vm_struct {{ self: {:?}, gvl: {:?}, thread_destruct_lock: {:?}, main_thread: {:?}, running_thread: {:?}, waiting_fds: {:?}, living_threads: {:?}, thgroup_default: {:?}, running: {:?}, thread_abort_on_exception: {:?}, trace_running: {:?}, sleeper: {:?}, mark_object_ary: {:?}, special_exceptions: {:?}, top_self: {:?}, load_path: {:?}, load_path_snapshot: {:?}, load_path_check_cache: {:?}, expanded_load_path: {:?}, loaded_features: {:?}, loaded_features_snapshot: {:?}, loaded_features_index: {:?}, loading_table: {:?}, trap_list: {:?}, event_hooks: {:?}, ensure_rollback_table: {:?}, postponed_job_buffer: {:?}, postponed_job_index: {:?}, src_encoding_index: {:?}, verbose: {:?}, debug: {:?}, orig_progname: {:?}, progname: {:?}, coverages: {:?}, defined_module_hash: {:?}, objspace: {:?}, at_exit: {:?}, defined_strings: {:?}, frozen_strings: {:?}, default_params: {:?}, redefined_flag: {:?} }}" , self . self_ , self . gvl , self . thread_destruct_lock , self . main_thread , self . running_thread , self . waiting_fds , self . living_threads , self . thgroup_default , self . running , self . thread_abort_on_exception , self . trace_running , self . sleeper , self . mark_object_ary , self . special_exceptions , self . top_self , self . load_path , self . load_path_snapshot , self . load_path_check_cache , self . expanded_load_path , self . loaded_features , self . loaded_features_snapshot , self . loaded_features_index , self . loading_table , self . trap_list , self . event_hooks , self . ensure_rollback_table , self . postponed_job_buffer , self . postponed_job_index , self . src_encoding_index , self . verbose , self . debug , self . orig_progname , self . progname , self . coverages , self . defined_module_hash , self . objspace , self . at_exit , self . defined_strings , self . frozen_strings , self . default_params , self . redefined_flag)
1740    }
1741}
1742pub type rb_vm_t = rb_vm_struct;
1743#[repr(C)]
1744#[derive(Debug, Copy, Clone)]
1745pub struct rb_control_frame_struct {
1746    pub pc: *const VALUE,
1747    pub sp: *mut VALUE,
1748    pub iseq: *const rb_iseq_t,
1749    pub flag: VALUE,
1750    pub self_: VALUE,
1751    pub ep: *mut VALUE,
1752    pub block_iseq: *const rb_iseq_t,
1753    pub proc_: VALUE,
1754}
1755pub type rb_control_frame_t = rb_control_frame_struct;
1756#[repr(C)]
1757#[derive(Debug, Copy, Clone)]
1758pub struct rb_block_struct {
1759    pub self_: VALUE,
1760    pub ep: *mut VALUE,
1761    pub iseq: *const rb_iseq_t,
1762    pub proc_: VALUE,
1763}
1764pub type rb_block_t = rb_block_struct;
1765pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 0;
1766pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 1;
1767pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 2;
1768pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 3;
1769pub type rb_thread_status = ::std::os::raw::c_uint;
1770pub type rb_jmpbuf_t = jmp_buf;
1771#[repr(C)]
1772#[derive(Debug, Copy, Clone)]
1773pub struct rb_vm_tag {
1774    pub tag: VALUE,
1775    pub retval: VALUE,
1776    pub buf: rb_jmpbuf_t,
1777    pub prev: *mut rb_vm_tag,
1778}
1779#[repr(C)]
1780#[derive(Debug, Copy, Clone)]
1781pub struct rb_vm_protect_tag {
1782    pub prev: *mut rb_vm_protect_tag,
1783}
1784#[repr(C)]
1785#[derive(Debug, Copy, Clone)]
1786pub struct rb_unblock_callback {
1787    pub func: rb_unblock_function_t,
1788    pub arg: *mut ::std::os::raw::c_void,
1789}
1790#[repr(C)]
1791#[derive(Debug, Copy, Clone)]
1792pub struct rb_mutex_struct {
1793    _unused: [u8; 0],
1794}
1795#[repr(C)]
1796#[derive(Debug, Copy, Clone)]
1797pub struct rb_thread_list_struct {
1798    pub next: *mut rb_thread_list_struct,
1799    pub th: *mut rb_thread_struct,
1800}
1801pub type rb_thread_list_t = rb_thread_list_struct;
1802#[repr(C)]
1803#[derive(Debug, Copy, Clone)]
1804pub struct rb_ensure_entry {
1805    pub marker: VALUE,
1806    pub e_proc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1807    pub data2: VALUE,
1808}
1809#[repr(C)]
1810#[derive(Debug, Copy, Clone)]
1811pub struct rb_ensure_list {
1812    pub next: *mut rb_ensure_list,
1813    pub entry: rb_ensure_entry,
1814}
1815pub type rb_ensure_list_t = rb_ensure_list;
1816#[repr(C)]
1817#[derive(Debug, Copy, Clone)]
1818pub struct rb_fiber_struct {
1819    _unused: [u8; 0],
1820}
1821pub type rb_fiber_t = rb_fiber_struct;
1822#[repr(C)]
1823#[derive(Copy, Clone)]
1824pub struct rb_thread_struct {
1825    pub vmlt_node: list_node,
1826    pub self_: VALUE,
1827    pub vm: *mut rb_vm_t,
1828    pub stack: *mut VALUE,
1829    pub stack_size: usize,
1830    pub cfp: *mut rb_control_frame_t,
1831    pub safe_level: ::std::os::raw::c_int,
1832    pub raised_flag: ::std::os::raw::c_int,
1833    pub last_status: VALUE,
1834    pub state: ::std::os::raw::c_int,
1835    pub passed_block: *const rb_block_t,
1836    pub passed_bmethod_me: *const rb_callable_method_entry_t,
1837    pub calling: *mut rb_calling_info,
1838    pub top_self: VALUE,
1839    pub top_wrapper: VALUE,
1840    pub base_block: *mut rb_block_t,
1841    pub root_lep: *mut VALUE,
1842    pub root_svar: VALUE,
1843    pub thread_id: rb_nativethread_id_t,
1844    pub status: rb_thread_status,
1845    pub to_kill: ::std::os::raw::c_int,
1846    pub priority: ::std::os::raw::c_int,
1847    pub native_thread_data: native_thread_data_t,
1848    pub blocking_region_buffer: *mut ::std::os::raw::c_void,
1849    pub thgroup: VALUE,
1850    pub value: VALUE,
1851    pub errinfo: VALUE,
1852    pub pending_interrupt_queue: VALUE,
1853    pub pending_interrupt_mask_stack: VALUE,
1854    pub pending_interrupt_queue_checked: ::std::os::raw::c_int,
1855    pub interrupt_flag: rb_atomic_t,
1856    pub interrupt_mask: ::std::os::raw::c_ulong,
1857    pub interrupt_lock: rb_nativethread_lock_t,
1858    pub interrupt_cond: rb_nativethread_cond_t,
1859    pub unblock: rb_unblock_callback,
1860    pub locking_mutex: VALUE,
1861    pub keeping_mutexes: *mut rb_mutex_struct,
1862    pub tag: *mut rb_vm_tag,
1863    pub protect_tag: *mut rb_vm_protect_tag,
1864    pub parse_in_eval: ::std::os::raw::c_int,
1865    pub mild_compile_error: ::std::os::raw::c_int,
1866    pub local_storage: *mut st_table,
1867    pub local_storage_recursive_hash: VALUE,
1868    pub local_storage_recursive_hash_for_trace: VALUE,
1869    pub join_list: *mut rb_thread_list_t,
1870    pub first_proc: VALUE,
1871    pub first_args: VALUE,
1872    pub first_func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1873    pub machine: rb_thread_struct__bindgen_ty_1,
1874    pub stat_insn_usage: VALUE,
1875    pub event_hooks: rb_hook_list_t,
1876    pub trace_arg: *mut rb_trace_arg_struct,
1877    pub fiber: *mut rb_fiber_t,
1878    pub root_fiber: *mut rb_fiber_t,
1879    pub root_jmpbuf: rb_jmpbuf_t,
1880    pub ensure_list: *mut rb_ensure_list_t,
1881    pub method_missing_reason: method_missing_reason,
1882    pub abort_on_exception: ::std::os::raw::c_int,
1883    pub altstack: *mut ::std::os::raw::c_void,
1884    pub running_time_us: ::std::os::raw::c_ulong,
1885    pub name: VALUE,
1886}
1887#[repr(C)]
1888#[derive(Debug, Copy, Clone)]
1889pub struct rb_thread_struct__bindgen_ty_1 {
1890    pub stack_start: *mut VALUE,
1891    pub stack_end: *mut VALUE,
1892    pub stack_maxsize: usize,
1893    pub regs: jmp_buf,
1894}
1895impl ::std::fmt::Debug for rb_thread_struct {
1896    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1897        write ! (f , "rb_thread_struct {{ vmlt_node: {:?}, self: {:?}, vm: {:?}, stack: {:?}, cfp: {:?}, safe_level: {:?}, raised_flag: {:?}, last_status: {:?}, state: {:?}, passed_block: {:?}, passed_bmethod_me: {:?}, calling: {:?}, top_self: {:?}, top_wrapper: {:?}, base_block: {:?}, root_lep: {:?}, root_svar: {:?}, thread_id: {:?}, status: {:?}, to_kill: {:?}, priority: {:?}, native_thread_data: {:?}, blocking_region_buffer: {:?}, thgroup: {:?}, value: {:?}, errinfo: {:?}, pending_interrupt_queue: {:?}, pending_interrupt_mask_stack: {:?}, pending_interrupt_queue_checked: {:?}, interrupt_flag: {:?}, interrupt_mask: {:?}, interrupt_lock: {:?}, interrupt_cond: {:?}, unblock: {:?}, locking_mutex: {:?}, keeping_mutexes: {:?}, tag: {:?}, protect_tag: {:?}, parse_in_eval: {:?}, mild_compile_error: {:?}, local_storage: {:?}, local_storage_recursive_hash: {:?}, local_storage_recursive_hash_for_trace: {:?}, join_list: {:?}, first_proc: {:?}, first_args: {:?}, first_func: {:?}, machine: {:?}, stat_insn_usage: {:?}, event_hooks: {:?}, trace_arg: {:?}, fiber: {:?}, root_fiber: {:?}, root_jmpbuf: {:?}, ensure_list: {:?}, method_missing_reason: {:?}, abort_on_exception: {:?}, altstack: {:?}, running_time_us: {:?}, name: {:?} }}" , self . vmlt_node , self . self_ , self . vm , self . stack , self . cfp , self . safe_level , self . raised_flag , self . last_status , self . state , self . passed_block , self . passed_bmethod_me , self . calling , self . top_self , self . top_wrapper , self . base_block , self . root_lep , self . root_svar , self . thread_id , self . status , self . to_kill , self . priority , self . native_thread_data , self . blocking_region_buffer , self . thgroup , self . value , self . errinfo , self . pending_interrupt_queue , self . pending_interrupt_mask_stack , self . pending_interrupt_queue_checked , self . interrupt_flag , self . interrupt_mask , self . interrupt_lock , self . interrupt_cond , self . unblock , self . locking_mutex , self . keeping_mutexes , self . tag , self . protect_tag , self . parse_in_eval , self . mild_compile_error , self . local_storage , self . local_storage_recursive_hash , self . local_storage_recursive_hash_for_trace , self . join_list , self . first_proc , self . first_args , self . first_func , self . machine , self . stat_insn_usage , self . event_hooks , self . trace_arg , self . fiber , self . root_fiber , self . root_jmpbuf , self . ensure_list , self . method_missing_reason , self . abort_on_exception , self . altstack , self . running_time_us , self . name)
1898    }
1899}
1900pub type rb_thread_t = rb_thread_struct;
1901#[repr(C)]
1902#[derive(Debug, Copy, Clone)]
1903pub struct rb_trace_arg_struct {
1904    pub event: rb_event_flag_t,
1905    pub th: *mut rb_thread_t,
1906    pub cfp: *mut rb_control_frame_t,
1907    pub self_: VALUE,
1908    pub id: ID,
1909    pub klass: VALUE,
1910    pub data: VALUE,
1911    pub klass_solved: ::std::os::raw::c_int,
1912    pub lineno: ::std::os::raw::c_int,
1913    pub path: VALUE,
1914}
1915#[repr(C)]
1916#[derive(Debug, Copy, Clone)]
1917pub struct rb_compile_option_struct {
1918    pub inline_const_cache: ::std::os::raw::c_int,
1919    pub peephole_optimization: ::std::os::raw::c_int,
1920    pub tailcall_optimization: ::std::os::raw::c_int,
1921    pub specialized_instruction: ::std::os::raw::c_int,
1922    pub operands_unification: ::std::os::raw::c_int,
1923    pub instructions_unification: ::std::os::raw::c_int,
1924    pub stack_caching: ::std::os::raw::c_int,
1925    pub trace_instruction: ::std::os::raw::c_int,
1926    pub frozen_string_literal: ::std::os::raw::c_int,
1927    pub debug_frozen_string_literal: ::std::os::raw::c_int,
1928    pub debug_level: ::std::os::raw::c_int,
1929}
1930#[repr(C)]
1931#[derive(Debug, Copy, Clone)]
1932pub struct iseq_line_info_entry {
1933    pub position: ::std::os::raw::c_uint,
1934    pub line_no: ::std::os::raw::c_uint,
1935}
1936#[repr(C)]
1937#[derive(Debug, Copy, Clone)]
1938pub struct iseq_catch_table_entry {
1939    pub type_: iseq_catch_table_entry_catch_type,
1940    pub iseq: *const rb_iseq_t,
1941    pub start: ::std::os::raw::c_uint,
1942    pub end: ::std::os::raw::c_uint,
1943    pub cont: ::std::os::raw::c_uint,
1944    pub sp: ::std::os::raw::c_uint,
1945}
1946pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RESCUE: iseq_catch_table_entry_catch_type =
1947    3;
1948pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_ENSURE: iseq_catch_table_entry_catch_type =
1949    5;
1950pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RETRY: iseq_catch_table_entry_catch_type = 7;
1951pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_BREAK: iseq_catch_table_entry_catch_type = 9;
1952pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_REDO: iseq_catch_table_entry_catch_type = 11;
1953pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_NEXT: iseq_catch_table_entry_catch_type = 13;
1954pub type iseq_catch_table_entry_catch_type = ::std::os::raw::c_uint;
1955#[repr(C)]
1956#[derive(Copy, Clone)]
1957pub struct iseq_catch_table {
1958    pub size: ::std::os::raw::c_uint,
1959    pub entries: [iseq_catch_table_entry; 1usize],
1960}
1961#[repr(C)]
1962#[derive(Debug, Copy, Clone)]
1963pub struct iseq_compile_data_storage {
1964    pub next: *mut iseq_compile_data_storage,
1965    pub pos: ::std::os::raw::c_uint,
1966    pub size: ::std::os::raw::c_uint,
1967    pub buff: [::std::os::raw::c_char; 1usize],
1968}
1969#[repr(C)]
1970#[derive(Debug, Copy, Clone)]
1971pub struct iseq_compile_data {
1972    pub err_info: VALUE,
1973    pub mark_ary: VALUE,
1974    pub catch_table_ary: VALUE,
1975    pub start_label: *mut iseq_label_data,
1976    pub end_label: *mut iseq_label_data,
1977    pub redo_label: *mut iseq_label_data,
1978    pub current_block: *const rb_iseq_t,
1979    pub ensure_node: VALUE,
1980    pub for_iseq: VALUE,
1981    pub ensure_node_stack: *mut iseq_compile_data_ensure_node_stack,
1982    pub loopval_popped: ::std::os::raw::c_int,
1983    pub cached_const: ::std::os::raw::c_int,
1984    pub storage_head: *mut iseq_compile_data_storage,
1985    pub storage_current: *mut iseq_compile_data_storage,
1986    pub last_line: ::std::os::raw::c_int,
1987    pub last_coverable_line: ::std::os::raw::c_int,
1988    pub label_no: ::std::os::raw::c_int,
1989    pub node_level: ::std::os::raw::c_int,
1990    pub ci_index: ::std::os::raw::c_uint,
1991    pub ci_kw_index: ::std::os::raw::c_uint,
1992    pub option: *const rb_compile_option_t,
1993}
1994#[repr(C)]
1995#[derive(Debug, Copy, Clone)]
1996pub struct st_table_entry {
1997    pub _address: u8,
1998}
1999#[repr(C)]
2000#[derive(Debug, Copy, Clone)]
2001pub struct st_packed_entry {
2002    pub _address: u8,
2003}
2004#[repr(C)]
2005#[derive(Debug, Copy, Clone)]
2006pub struct rb_id_table {
2007    pub _address: u8,
2008}
2009#[repr(C)]
2010#[derive(Debug, Copy, Clone)]
2011pub struct rb_event_hook_struct {
2012    pub _address: u8,
2013}
2014#[repr(C)]
2015#[derive(Debug, Copy, Clone)]
2016pub struct rb_postponed_job_struct {
2017    pub _address: u8,
2018}
2019#[repr(C)]
2020#[derive(Debug, Copy, Clone)]
2021pub struct iseq_label_data {
2022    pub _address: u8,
2023}
2024#[repr(C)]
2025#[derive(Debug, Copy, Clone)]
2026pub struct iseq_compile_data_ensure_node_stack {
2027    pub _address: u8,
2028}