rbspy_ruby_structs/
ruby_2_5_8.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(Debug, Copy, Clone)]
408pub struct st_table_entry {
409    _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct st_table {
414    pub entry_power: ::std::os::raw::c_uchar,
415    pub bin_power: ::std::os::raw::c_uchar,
416    pub size_ind: ::std::os::raw::c_uchar,
417    pub rebuilds_num: ::std::os::raw::c_uint,
418    pub type_: *const st_hash_type,
419    pub num_entries: st_index_t,
420    pub bins: *mut st_index_t,
421    pub entries_start: st_index_t,
422    pub entries_bound: st_index_t,
423    pub entries: *mut st_table_entry,
424}
425pub type rb_alloc_func_t = ::std::option::Option<unsafe extern "C" fn(arg1: VALUE) -> VALUE>;
426pub type rb_unblock_function_t =
427    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
428pub type rb_event_flag_t = u32;
429#[repr(C)]
430#[derive(Debug, Copy, Clone)]
431pub struct rb_code_location_struct {
432    pub lineno: ::std::os::raw::c_int,
433    pub column: ::std::os::raw::c_int,
434}
435pub type rb_code_location_t = rb_code_location_struct;
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct rb_code_range_struct {
439    pub first_loc: rb_code_location_t,
440    pub last_loc: rb_code_location_t,
441}
442pub type rb_code_range_t = rb_code_range_struct;
443pub const ruby_id_types_RUBY_ID_STATIC_SYM: ruby_id_types = 1;
444pub const ruby_id_types_RUBY_ID_LOCAL: ruby_id_types = 0;
445pub const ruby_id_types_RUBY_ID_INSTANCE: ruby_id_types = 2;
446pub const ruby_id_types_RUBY_ID_GLOBAL: ruby_id_types = 6;
447pub const ruby_id_types_RUBY_ID_ATTRSET: ruby_id_types = 8;
448pub const ruby_id_types_RUBY_ID_CONST: ruby_id_types = 10;
449pub const ruby_id_types_RUBY_ID_CLASS: ruby_id_types = 12;
450pub const ruby_id_types_RUBY_ID_JUNK: ruby_id_types = 14;
451pub const ruby_id_types_RUBY_ID_INTERNAL: ruby_id_types = 14;
452pub const ruby_id_types_RUBY_ID_SCOPE_SHIFT: ruby_id_types = 4;
453pub const ruby_id_types_RUBY_ID_SCOPE_MASK: ruby_id_types = 14;
454pub type ruby_id_types = ::std::os::raw::c_uint;
455pub const ruby_method_ids_idDot2: ruby_method_ids = 128;
456pub const ruby_method_ids_idDot3: ruby_method_ids = 129;
457pub const ruby_method_ids_idUPlus: ruby_method_ids = 130;
458pub const ruby_method_ids_idUMinus: ruby_method_ids = 131;
459pub const ruby_method_ids_idPow: ruby_method_ids = 132;
460pub const ruby_method_ids_idCmp: ruby_method_ids = 133;
461pub const ruby_method_ids_idPLUS: ruby_method_ids = 43;
462pub const ruby_method_ids_idMINUS: ruby_method_ids = 45;
463pub const ruby_method_ids_idMULT: ruby_method_ids = 42;
464pub const ruby_method_ids_idDIV: ruby_method_ids = 47;
465pub const ruby_method_ids_idMOD: ruby_method_ids = 37;
466pub const ruby_method_ids_idLTLT: ruby_method_ids = 134;
467pub const ruby_method_ids_idGTGT: ruby_method_ids = 135;
468pub const ruby_method_ids_idLT: ruby_method_ids = 60;
469pub const ruby_method_ids_idLE: ruby_method_ids = 136;
470pub const ruby_method_ids_idGT: ruby_method_ids = 62;
471pub const ruby_method_ids_idGE: ruby_method_ids = 137;
472pub const ruby_method_ids_idEq: ruby_method_ids = 138;
473pub const ruby_method_ids_idEqq: ruby_method_ids = 139;
474pub const ruby_method_ids_idNeq: ruby_method_ids = 140;
475pub const ruby_method_ids_idNot: ruby_method_ids = 33;
476pub const ruby_method_ids_idBackquote: ruby_method_ids = 96;
477pub const ruby_method_ids_idEqTilde: ruby_method_ids = 141;
478pub const ruby_method_ids_idNeqTilde: ruby_method_ids = 142;
479pub const ruby_method_ids_idAREF: ruby_method_ids = 143;
480pub const ruby_method_ids_idASET: ruby_method_ids = 144;
481pub const ruby_method_ids_idCOLON2: ruby_method_ids = 145;
482pub const ruby_method_ids_idANDOP: ruby_method_ids = 146;
483pub const ruby_method_ids_idOROP: ruby_method_ids = 147;
484pub const ruby_method_ids_idANDDOT: ruby_method_ids = 148;
485pub const ruby_method_ids_tPRESERVED_ID_BEGIN: ruby_method_ids = 148;
486pub const ruby_method_ids_idNULL: ruby_method_ids = 149;
487pub const ruby_method_ids_idEmptyP: ruby_method_ids = 150;
488pub const ruby_method_ids_idEqlP: ruby_method_ids = 151;
489pub const ruby_method_ids_idRespond_to: ruby_method_ids = 152;
490pub const ruby_method_ids_idRespond_to_missing: ruby_method_ids = 153;
491pub const ruby_method_ids_idIFUNC: ruby_method_ids = 154;
492pub const ruby_method_ids_idCFUNC: ruby_method_ids = 155;
493pub const ruby_method_ids_id_core_set_method_alias: ruby_method_ids = 156;
494pub const ruby_method_ids_id_core_set_variable_alias: ruby_method_ids = 157;
495pub const ruby_method_ids_id_core_undef_method: ruby_method_ids = 158;
496pub const ruby_method_ids_id_core_define_method: ruby_method_ids = 159;
497pub const ruby_method_ids_id_core_define_singleton_method: ruby_method_ids = 160;
498pub const ruby_method_ids_id_core_set_postexe: ruby_method_ids = 161;
499pub const ruby_method_ids_id_core_hash_from_ary: ruby_method_ids = 162;
500pub const ruby_method_ids_id_core_hash_merge_ary: ruby_method_ids = 163;
501pub const ruby_method_ids_id_core_hash_merge_ptr: ruby_method_ids = 164;
502pub const ruby_method_ids_id_core_hash_merge_kwd: ruby_method_ids = 165;
503pub const ruby_method_ids_id_debug_created_info: ruby_method_ids = 166;
504pub const ruby_method_ids_tPRESERVED_ID_END: ruby_method_ids = 167;
505pub const ruby_method_ids_tTOKEN_LOCAL_BEGIN: ruby_method_ids = 166;
506pub const ruby_method_ids_tMax: ruby_method_ids = 167;
507pub const ruby_method_ids_tMin: ruby_method_ids = 168;
508pub const ruby_method_ids_tFreeze: ruby_method_ids = 169;
509pub const ruby_method_ids_tInspect: ruby_method_ids = 170;
510pub const ruby_method_ids_tIntern: ruby_method_ids = 171;
511pub const ruby_method_ids_tObject_id: ruby_method_ids = 172;
512pub const ruby_method_ids_tConst_missing: ruby_method_ids = 173;
513pub const ruby_method_ids_tMethodMissing: ruby_method_ids = 174;
514pub const ruby_method_ids_tMethod_added: ruby_method_ids = 175;
515pub const ruby_method_ids_tSingleton_method_added: ruby_method_ids = 176;
516pub const ruby_method_ids_tMethod_removed: ruby_method_ids = 177;
517pub const ruby_method_ids_tSingleton_method_removed: ruby_method_ids = 178;
518pub const ruby_method_ids_tMethod_undefined: ruby_method_ids = 179;
519pub const ruby_method_ids_tSingleton_method_undefined: ruby_method_ids = 180;
520pub const ruby_method_ids_tLength: ruby_method_ids = 181;
521pub const ruby_method_ids_tSize: ruby_method_ids = 182;
522pub const ruby_method_ids_tGets: ruby_method_ids = 183;
523pub const ruby_method_ids_tSucc: ruby_method_ids = 184;
524pub const ruby_method_ids_tEach: ruby_method_ids = 185;
525pub const ruby_method_ids_tProc: ruby_method_ids = 186;
526pub const ruby_method_ids_tLambda: ruby_method_ids = 187;
527pub const ruby_method_ids_tSend: ruby_method_ids = 188;
528pub const ruby_method_ids_t__send__: ruby_method_ids = 189;
529pub const ruby_method_ids_t__attached__: ruby_method_ids = 190;
530pub const ruby_method_ids_tInitialize: ruby_method_ids = 191;
531pub const ruby_method_ids_tInitialize_copy: ruby_method_ids = 192;
532pub const ruby_method_ids_tInitialize_clone: ruby_method_ids = 193;
533pub const ruby_method_ids_tInitialize_dup: ruby_method_ids = 194;
534pub const ruby_method_ids_tTo_int: ruby_method_ids = 195;
535pub const ruby_method_ids_tTo_ary: ruby_method_ids = 196;
536pub const ruby_method_ids_tTo_str: ruby_method_ids = 197;
537pub const ruby_method_ids_tTo_sym: ruby_method_ids = 198;
538pub const ruby_method_ids_tTo_hash: ruby_method_ids = 199;
539pub const ruby_method_ids_tTo_proc: ruby_method_ids = 200;
540pub const ruby_method_ids_tTo_io: ruby_method_ids = 201;
541pub const ruby_method_ids_tTo_a: ruby_method_ids = 202;
542pub const ruby_method_ids_tTo_s: ruby_method_ids = 203;
543pub const ruby_method_ids_tTo_i: ruby_method_ids = 204;
544pub const ruby_method_ids_tTo_r: ruby_method_ids = 205;
545pub const ruby_method_ids_tBt: ruby_method_ids = 206;
546pub const ruby_method_ids_tBt_locations: ruby_method_ids = 207;
547pub const ruby_method_ids_tCall: ruby_method_ids = 208;
548pub const ruby_method_ids_tMesg: ruby_method_ids = 209;
549pub const ruby_method_ids_tException: ruby_method_ids = 210;
550pub const ruby_method_ids_tNOT: ruby_method_ids = 211;
551pub const ruby_method_ids_tAND: ruby_method_ids = 212;
552pub const ruby_method_ids_tOR: ruby_method_ids = 213;
553pub const ruby_method_ids_tUScore: ruby_method_ids = 214;
554pub const ruby_method_ids_tTOKEN_LOCAL_END: ruby_method_ids = 215;
555pub const ruby_method_ids_tTOKEN_INSTANCE_BEGIN: ruby_method_ids = 214;
556pub const ruby_method_ids_tTOKEN_INSTANCE_END: ruby_method_ids = 215;
557pub const ruby_method_ids_tTOKEN_GLOBAL_BEGIN: ruby_method_ids = 214;
558pub const ruby_method_ids_tLASTLINE: ruby_method_ids = 215;
559pub const ruby_method_ids_tBACKREF: ruby_method_ids = 216;
560pub const ruby_method_ids_tTOKEN_GLOBAL_END: ruby_method_ids = 217;
561pub const ruby_method_ids_tTOKEN_CONST_BEGIN: ruby_method_ids = 216;
562pub const ruby_method_ids_tTOKEN_CONST_END: ruby_method_ids = 217;
563pub const ruby_method_ids_tTOKEN_CLASS_BEGIN: ruby_method_ids = 216;
564pub const ruby_method_ids_tTOKEN_CLASS_END: ruby_method_ids = 217;
565pub const ruby_method_ids_tTOKEN_ATTRSET_BEGIN: ruby_method_ids = 216;
566pub const ruby_method_ids_tTOKEN_ATTRSET_END: ruby_method_ids = 217;
567pub const ruby_method_ids_tNEXT_ID: ruby_method_ids = 217;
568pub const ruby_method_ids_idMax: ruby_method_ids = 2673;
569pub const ruby_method_ids_idMin: ruby_method_ids = 2689;
570pub const ruby_method_ids_idFreeze: ruby_method_ids = 2705;
571pub const ruby_method_ids_idInspect: ruby_method_ids = 2721;
572pub const ruby_method_ids_idIntern: ruby_method_ids = 2737;
573pub const ruby_method_ids_idObject_id: ruby_method_ids = 2753;
574pub const ruby_method_ids_idConst_missing: ruby_method_ids = 2769;
575pub const ruby_method_ids_idMethodMissing: ruby_method_ids = 2785;
576pub const ruby_method_ids_idMethod_added: ruby_method_ids = 2801;
577pub const ruby_method_ids_idSingleton_method_added: ruby_method_ids = 2817;
578pub const ruby_method_ids_idMethod_removed: ruby_method_ids = 2833;
579pub const ruby_method_ids_idSingleton_method_removed: ruby_method_ids = 2849;
580pub const ruby_method_ids_idMethod_undefined: ruby_method_ids = 2865;
581pub const ruby_method_ids_idSingleton_method_undefined: ruby_method_ids = 2881;
582pub const ruby_method_ids_idLength: ruby_method_ids = 2897;
583pub const ruby_method_ids_idSize: ruby_method_ids = 2913;
584pub const ruby_method_ids_idGets: ruby_method_ids = 2929;
585pub const ruby_method_ids_idSucc: ruby_method_ids = 2945;
586pub const ruby_method_ids_idEach: ruby_method_ids = 2961;
587pub const ruby_method_ids_idProc: ruby_method_ids = 2977;
588pub const ruby_method_ids_idLambda: ruby_method_ids = 2993;
589pub const ruby_method_ids_idSend: ruby_method_ids = 3009;
590pub const ruby_method_ids_id__send__: ruby_method_ids = 3025;
591pub const ruby_method_ids_id__attached__: ruby_method_ids = 3041;
592pub const ruby_method_ids_idInitialize: ruby_method_ids = 3057;
593pub const ruby_method_ids_idInitialize_copy: ruby_method_ids = 3073;
594pub const ruby_method_ids_idInitialize_clone: ruby_method_ids = 3089;
595pub const ruby_method_ids_idInitialize_dup: ruby_method_ids = 3105;
596pub const ruby_method_ids_idTo_int: ruby_method_ids = 3121;
597pub const ruby_method_ids_idTo_ary: ruby_method_ids = 3137;
598pub const ruby_method_ids_idTo_str: ruby_method_ids = 3153;
599pub const ruby_method_ids_idTo_sym: ruby_method_ids = 3169;
600pub const ruby_method_ids_idTo_hash: ruby_method_ids = 3185;
601pub const ruby_method_ids_idTo_proc: ruby_method_ids = 3201;
602pub const ruby_method_ids_idTo_io: ruby_method_ids = 3217;
603pub const ruby_method_ids_idTo_a: ruby_method_ids = 3233;
604pub const ruby_method_ids_idTo_s: ruby_method_ids = 3249;
605pub const ruby_method_ids_idTo_i: ruby_method_ids = 3265;
606pub const ruby_method_ids_idTo_r: ruby_method_ids = 3281;
607pub const ruby_method_ids_idBt: ruby_method_ids = 3297;
608pub const ruby_method_ids_idBt_locations: ruby_method_ids = 3313;
609pub const ruby_method_ids_idCall: ruby_method_ids = 3329;
610pub const ruby_method_ids_idMesg: ruby_method_ids = 3345;
611pub const ruby_method_ids_idException: ruby_method_ids = 3361;
612pub const ruby_method_ids_idNOT: ruby_method_ids = 3377;
613pub const ruby_method_ids_idAND: ruby_method_ids = 3393;
614pub const ruby_method_ids_idOR: ruby_method_ids = 3409;
615pub const ruby_method_ids_idUScore: ruby_method_ids = 3425;
616pub const ruby_method_ids_idLASTLINE: ruby_method_ids = 3447;
617pub const ruby_method_ids_idBACKREF: ruby_method_ids = 3463;
618pub const ruby_method_ids_tLAST_OP_ID: ruby_method_ids = 166;
619pub const ruby_method_ids_idLAST_OP_ID: ruby_method_ids = 10;
620pub type ruby_method_ids = ::std::os::raw::c_uint;
621pub type rb_subclass_entry_t = rb_subclass_entry;
622#[repr(C)]
623#[derive(Debug, Copy, Clone)]
624pub struct rb_subclass_entry {
625    pub klass: VALUE,
626    pub next: *mut rb_subclass_entry_t,
627}
628pub type rb_serial_t = ::std::os::raw::c_ulonglong;
629#[repr(C)]
630#[derive(Debug, Copy, Clone)]
631pub struct rb_classext_struct {
632    pub iv_index_tbl: *mut st_table,
633    pub iv_tbl: *mut st_table,
634    pub const_tbl: *mut rb_id_table,
635    pub callable_m_tbl: *mut rb_id_table,
636    pub subclasses: *mut rb_subclass_entry_t,
637    pub parent_subclasses: *mut *mut rb_subclass_entry_t,
638    pub module_subclasses: *mut *mut rb_subclass_entry_t,
639    pub class_serial: rb_serial_t,
640    pub origin_: VALUE,
641    pub refined_class: VALUE,
642    pub allocator: rb_alloc_func_t,
643}
644pub type rb_classext_t = rb_classext_struct;
645pub const imemo_type_imemo_env: imemo_type = 0;
646pub const imemo_type_imemo_cref: imemo_type = 1;
647pub const imemo_type_imemo_svar: imemo_type = 2;
648pub const imemo_type_imemo_throw_data: imemo_type = 3;
649pub const imemo_type_imemo_ifunc: imemo_type = 4;
650pub const imemo_type_imemo_memo: imemo_type = 5;
651pub const imemo_type_imemo_ment: imemo_type = 6;
652pub const imemo_type_imemo_iseq: imemo_type = 7;
653pub const imemo_type_imemo_alloc: imemo_type = 8;
654pub const imemo_type_imemo_ast: imemo_type = 9;
655pub const imemo_type_imemo_parser_strterm: imemo_type = 10;
656pub type imemo_type = ::std::os::raw::c_uint;
657#[repr(C)]
658#[derive(Debug, Copy, Clone)]
659pub struct vm_svar {
660    pub flags: VALUE,
661    pub cref_or_me: VALUE,
662    pub lastline: VALUE,
663    pub backref: VALUE,
664    pub others: VALUE,
665}
666pub const rb_method_visibility_t_METHOD_VISI_UNDEF: rb_method_visibility_t = 0;
667pub const rb_method_visibility_t_METHOD_VISI_PUBLIC: rb_method_visibility_t = 1;
668pub const rb_method_visibility_t_METHOD_VISI_PRIVATE: rb_method_visibility_t = 2;
669pub const rb_method_visibility_t_METHOD_VISI_PROTECTED: rb_method_visibility_t = 3;
670pub const rb_method_visibility_t_METHOD_VISI_MASK: rb_method_visibility_t = 3;
671pub type rb_method_visibility_t = ::std::os::raw::c_uint;
672#[repr(C)]
673#[repr(align(4))]
674#[derive(Debug, Copy, Clone)]
675pub struct rb_scope_visi_struct {
676    pub _bitfield_align_1: [u8; 0],
677    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
678    pub __bindgen_padding_0: [u8; 3usize],
679}
680impl rb_scope_visi_struct {
681    #[inline]
682    pub fn method_visi(&self) -> rb_method_visibility_t {
683        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
684    }
685    #[inline]
686    pub fn set_method_visi(&mut self, val: rb_method_visibility_t) {
687        unsafe {
688            let val: u32 = ::std::mem::transmute(val);
689            self._bitfield_1.set(0usize, 3u8, val as u64)
690        }
691    }
692    #[inline]
693    pub unsafe fn method_visi_raw(this: *const Self) -> rb_method_visibility_t {
694        unsafe {
695            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
696                ::std::ptr::addr_of!((*this)._bitfield_1),
697                0usize,
698                3u8,
699            ) as u32)
700        }
701    }
702    #[inline]
703    pub unsafe fn set_method_visi_raw(this: *mut Self, val: rb_method_visibility_t) {
704        unsafe {
705            let val: u32 = ::std::mem::transmute(val);
706            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
707                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
708                0usize,
709                3u8,
710                val as u64,
711            )
712        }
713    }
714    #[inline]
715    pub fn module_func(&self) -> ::std::os::raw::c_uint {
716        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
717    }
718    #[inline]
719    pub fn set_module_func(&mut self, val: ::std::os::raw::c_uint) {
720        unsafe {
721            let val: u32 = ::std::mem::transmute(val);
722            self._bitfield_1.set(3usize, 1u8, val as u64)
723        }
724    }
725    #[inline]
726    pub unsafe fn module_func_raw(this: *const Self) -> ::std::os::raw::c_uint {
727        unsafe {
728            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
729                ::std::ptr::addr_of!((*this)._bitfield_1),
730                3usize,
731                1u8,
732            ) as u32)
733        }
734    }
735    #[inline]
736    pub unsafe fn set_module_func_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
737        unsafe {
738            let val: u32 = ::std::mem::transmute(val);
739            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
740                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
741                3usize,
742                1u8,
743                val as u64,
744            )
745        }
746    }
747    #[inline]
748    pub fn new_bitfield_1(
749        method_visi: rb_method_visibility_t,
750        module_func: ::std::os::raw::c_uint,
751    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
752        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
753        __bindgen_bitfield_unit.set(0usize, 3u8, {
754            let method_visi: u32 = unsafe { ::std::mem::transmute(method_visi) };
755            method_visi as u64
756        });
757        __bindgen_bitfield_unit.set(3usize, 1u8, {
758            let module_func: u32 = unsafe { ::std::mem::transmute(module_func) };
759            module_func as u64
760        });
761        __bindgen_bitfield_unit
762    }
763}
764pub type rb_scope_visibility_t = rb_scope_visi_struct;
765#[repr(C)]
766#[derive(Debug, Copy, Clone)]
767pub struct rb_cref_struct {
768    pub flags: VALUE,
769    pub refinements: VALUE,
770    pub klass: VALUE,
771    pub next: *mut rb_cref_struct,
772    pub scope_visi: rb_scope_visibility_t,
773}
774pub type rb_cref_t = rb_cref_struct;
775#[repr(C)]
776#[derive(Debug, Copy, Clone)]
777pub struct rb_method_entry_struct {
778    pub flags: VALUE,
779    pub defined_class: VALUE,
780    pub def: *mut rb_method_definition_struct,
781    pub called_id: ID,
782    pub owner: VALUE,
783}
784#[repr(C)]
785#[derive(Debug, Copy, Clone)]
786pub struct rb_callable_method_entry_struct {
787    pub flags: VALUE,
788    pub defined_class: VALUE,
789    pub def: *mut rb_method_definition_struct,
790    pub called_id: ID,
791    pub owner: VALUE,
792}
793pub type rb_callable_method_entry_t = rb_callable_method_entry_struct;
794pub type rb_iseq_t = rb_iseq_struct;
795#[repr(C)]
796#[derive(Debug, Copy, Clone)]
797pub struct rb_method_iseq_struct {
798    pub iseqptr: *const rb_iseq_t,
799    pub cref: *mut rb_cref_t,
800}
801pub type rb_method_iseq_t = rb_method_iseq_struct;
802#[repr(C)]
803#[derive(Debug, Copy, Clone)]
804pub struct rb_method_cfunc_struct {
805    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
806    pub invoker: ::std::option::Option<
807        unsafe extern "C" fn(
808            func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
809            recv: VALUE,
810            argc: ::std::os::raw::c_int,
811            argv: *const VALUE,
812        ) -> VALUE,
813    >,
814    pub argc: ::std::os::raw::c_int,
815}
816pub type rb_method_cfunc_t = rb_method_cfunc_struct;
817#[repr(C)]
818#[derive(Debug, Copy, Clone)]
819pub struct rb_method_attr_struct {
820    pub id: ID,
821    pub location: VALUE,
822}
823pub type rb_method_attr_t = rb_method_attr_struct;
824#[repr(C)]
825#[derive(Debug, Copy, Clone)]
826pub struct rb_method_alias_struct {
827    pub original_me: *const rb_method_entry_struct,
828}
829pub type rb_method_alias_t = rb_method_alias_struct;
830#[repr(C)]
831#[derive(Debug, Copy, Clone)]
832pub struct rb_method_refined_struct {
833    pub orig_me: *const rb_method_entry_struct,
834    pub owner: VALUE,
835}
836pub type rb_method_refined_t = rb_method_refined_struct;
837pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_SEND: method_optimized_type = 0;
838pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_CALL: method_optimized_type = 1;
839pub const method_optimized_type_OPTIMIZED_METHOD_TYPE__MAX: method_optimized_type = 2;
840pub type method_optimized_type = ::std::os::raw::c_uint;
841#[repr(C, packed)]
842#[derive(Copy, Clone)]
843pub struct rb_method_definition_struct {
844    pub _bitfield_align_1: [u8; 0],
845    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
846    pub body: rb_method_definition_struct__bindgen_ty_1,
847    pub original_id: ID,
848}
849#[repr(C)]
850#[derive(Copy, Clone)]
851pub union rb_method_definition_struct__bindgen_ty_1 {
852    pub iseq: rb_method_iseq_t,
853    pub cfunc: rb_method_cfunc_t,
854    pub attr: rb_method_attr_t,
855    pub alias: rb_method_alias_t,
856    pub refined: rb_method_refined_t,
857    pub proc_: VALUE,
858    pub optimize_type: method_optimized_type,
859}
860impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
861    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
862        write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
863    }
864}
865impl rb_method_definition_struct {
866    #[inline]
867    pub fn type_(&self) -> ::std::os::raw::c_uint {
868        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
869    }
870    #[inline]
871    pub fn set_type(&mut self, val: ::std::os::raw::c_uint) {
872        unsafe {
873            let val: u32 = ::std::mem::transmute(val);
874            self._bitfield_1.set(0usize, 4u8, val as u64)
875        }
876    }
877    #[inline]
878    pub unsafe fn type__raw(this: *const Self) -> ::std::os::raw::c_uint {
879        unsafe {
880            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
881                ::std::ptr::addr_of!((*this)._bitfield_1),
882                0usize,
883                4u8,
884            ) as u32)
885        }
886    }
887    #[inline]
888    pub unsafe fn set_type_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
889        unsafe {
890            let val: u32 = ::std::mem::transmute(val);
891            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
892                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
893                0usize,
894                4u8,
895                val as u64,
896            )
897        }
898    }
899    #[inline]
900    pub fn alias_count(&self) -> ::std::os::raw::c_int {
901        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
902    }
903    #[inline]
904    pub fn set_alias_count(&mut self, val: ::std::os::raw::c_int) {
905        unsafe {
906            let val: u32 = ::std::mem::transmute(val);
907            self._bitfield_1.set(4usize, 28u8, val as u64)
908        }
909    }
910    #[inline]
911    pub unsafe fn alias_count_raw(this: *const Self) -> ::std::os::raw::c_int {
912        unsafe {
913            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
914                ::std::ptr::addr_of!((*this)._bitfield_1),
915                4usize,
916                28u8,
917            ) as u32)
918        }
919    }
920    #[inline]
921    pub unsafe fn set_alias_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
922        unsafe {
923            let val: u32 = ::std::mem::transmute(val);
924            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
925                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
926                4usize,
927                28u8,
928                val as u64,
929            )
930        }
931    }
932    #[inline]
933    pub fn complemented_count(&self) -> ::std::os::raw::c_int {
934        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 28u8) as u32) }
935    }
936    #[inline]
937    pub fn set_complemented_count(&mut self, val: ::std::os::raw::c_int) {
938        unsafe {
939            let val: u32 = ::std::mem::transmute(val);
940            self._bitfield_1.set(32usize, 28u8, val as u64)
941        }
942    }
943    #[inline]
944    pub unsafe fn complemented_count_raw(this: *const Self) -> ::std::os::raw::c_int {
945        unsafe {
946            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
947                ::std::ptr::addr_of!((*this)._bitfield_1),
948                32usize,
949                28u8,
950            ) as u32)
951        }
952    }
953    #[inline]
954    pub unsafe fn set_complemented_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
955        unsafe {
956            let val: u32 = ::std::mem::transmute(val);
957            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
958                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
959                32usize,
960                28u8,
961                val as u64,
962            )
963        }
964    }
965    #[inline]
966    pub fn new_bitfield_1(
967        type_: ::std::os::raw::c_uint,
968        alias_count: ::std::os::raw::c_int,
969        complemented_count: ::std::os::raw::c_int,
970    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
971        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
972        __bindgen_bitfield_unit.set(0usize, 4u8, {
973            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
974            type_ as u64
975        });
976        __bindgen_bitfield_unit.set(4usize, 28u8, {
977            let alias_count: u32 = unsafe { ::std::mem::transmute(alias_count) };
978            alias_count as u64
979        });
980        __bindgen_bitfield_unit.set(32usize, 28u8, {
981            let complemented_count: u32 = unsafe { ::std::mem::transmute(complemented_count) };
982            complemented_count as u64
983        });
984        __bindgen_bitfield_unit
985    }
986}
987pub type rb_atomic_t = ::std::os::raw::c_uint;
988#[repr(C)]
989#[derive(Debug, Copy, Clone)]
990pub struct list_node {
991    pub next: *mut list_node,
992    pub prev: *mut list_node,
993}
994#[repr(C)]
995#[derive(Debug, Copy, Clone)]
996pub struct list_head {
997    pub n: list_node,
998}
999pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
1000pub type rb_nativethread_id_t = pthread_t;
1001pub type rb_nativethread_lock_t = pthread_mutex_t;
1002#[repr(C)]
1003#[derive(Copy, Clone)]
1004pub struct rb_thread_cond_struct {
1005    pub cond: pthread_cond_t,
1006    pub clockid: clockid_t,
1007}
1008impl ::std::fmt::Debug for rb_thread_cond_struct {
1009    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1010        write!(
1011            f,
1012            "rb_thread_cond_struct {{ cond: {:?}, clockid: {:?} }}",
1013            self.cond, self.clockid
1014        )
1015    }
1016}
1017pub type rb_nativethread_cond_t = rb_thread_cond_struct;
1018#[repr(C)]
1019#[derive(Copy, Clone)]
1020pub struct native_thread_data_struct {
1021    pub ubf_list: list_node,
1022    pub sleep_cond: rb_nativethread_cond_t,
1023}
1024impl ::std::fmt::Debug for native_thread_data_struct {
1025    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1026        write!(
1027            f,
1028            "native_thread_data_struct {{ ubf_list: {:?}, sleep_cond: {:?} }}",
1029            self.ubf_list, self.sleep_cond
1030        )
1031    }
1032}
1033pub type native_thread_data_t = native_thread_data_struct;
1034#[repr(C)]
1035#[derive(Copy, Clone)]
1036pub struct rb_global_vm_lock_struct {
1037    pub acquired: ::std::os::raw::c_ulong,
1038    pub lock: rb_nativethread_lock_t,
1039    pub waiting: ::std::os::raw::c_ulong,
1040    pub cond: rb_nativethread_cond_t,
1041    pub switch_cond: rb_nativethread_cond_t,
1042    pub switch_wait_cond: rb_nativethread_cond_t,
1043    pub need_yield: ::std::os::raw::c_int,
1044    pub wait_yield: ::std::os::raw::c_int,
1045}
1046impl ::std::fmt::Debug for rb_global_vm_lock_struct {
1047    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1048        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)
1049    }
1050}
1051pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
1052#[repr(C)]
1053#[derive(Debug, Copy, Clone)]
1054pub struct __jmp_buf_tag {
1055    pub __jmpbuf: __jmp_buf,
1056    pub __mask_was_saved: ::std::os::raw::c_int,
1057    pub __saved_mask: __sigset_t,
1058}
1059pub type jmp_buf = [__jmp_buf_tag; 1usize];
1060pub const ruby_tag_type_RUBY_TAG_NONE: ruby_tag_type = 0;
1061pub const ruby_tag_type_RUBY_TAG_RETURN: ruby_tag_type = 1;
1062pub const ruby_tag_type_RUBY_TAG_BREAK: ruby_tag_type = 2;
1063pub const ruby_tag_type_RUBY_TAG_NEXT: ruby_tag_type = 3;
1064pub const ruby_tag_type_RUBY_TAG_RETRY: ruby_tag_type = 4;
1065pub const ruby_tag_type_RUBY_TAG_REDO: ruby_tag_type = 5;
1066pub const ruby_tag_type_RUBY_TAG_RAISE: ruby_tag_type = 6;
1067pub const ruby_tag_type_RUBY_TAG_THROW: ruby_tag_type = 7;
1068pub const ruby_tag_type_RUBY_TAG_FATAL: ruby_tag_type = 8;
1069pub const ruby_tag_type_RUBY_TAG_MASK: ruby_tag_type = 15;
1070pub type ruby_tag_type = ::std::os::raw::c_uint;
1071pub type rb_compile_option_t = rb_compile_option_struct;
1072#[repr(C)]
1073#[derive(Copy, Clone)]
1074pub struct iseq_inline_cache_entry {
1075    pub ic_serial: rb_serial_t,
1076    pub ic_cref: *const rb_cref_t,
1077    pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
1078}
1079#[repr(C)]
1080#[derive(Copy, Clone)]
1081pub union iseq_inline_cache_entry__bindgen_ty_1 {
1082    pub index: usize,
1083    pub value: VALUE,
1084}
1085impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
1086    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1087        write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
1088    }
1089}
1090impl ::std::fmt::Debug for iseq_inline_cache_entry {
1091    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1092        write!(
1093            f,
1094            "iseq_inline_cache_entry {{ ic_serial: {:?}, ic_cref: {:?}, ic_value: {:?} }}",
1095            self.ic_serial, self.ic_cref, self.ic_value
1096        )
1097    }
1098}
1099#[repr(C)]
1100#[derive(Copy, Clone)]
1101pub union iseq_inline_storage_entry {
1102    pub once: iseq_inline_storage_entry__bindgen_ty_1,
1103    pub cache: iseq_inline_cache_entry,
1104}
1105#[repr(C)]
1106#[derive(Debug, Copy, Clone)]
1107pub struct iseq_inline_storage_entry__bindgen_ty_1 {
1108    pub running_thread: *mut rb_thread_struct,
1109    pub value: VALUE,
1110}
1111impl ::std::fmt::Debug for iseq_inline_storage_entry {
1112    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1113        write!(f, "iseq_inline_storage_entry {{ union }}")
1114    }
1115}
1116pub const method_missing_reason_MISSING_NOENTRY: method_missing_reason = 0;
1117pub const method_missing_reason_MISSING_PRIVATE: method_missing_reason = 1;
1118pub const method_missing_reason_MISSING_PROTECTED: method_missing_reason = 2;
1119pub const method_missing_reason_MISSING_FCALL: method_missing_reason = 4;
1120pub const method_missing_reason_MISSING_VCALL: method_missing_reason = 8;
1121pub const method_missing_reason_MISSING_SUPER: method_missing_reason = 16;
1122pub const method_missing_reason_MISSING_MISSING: method_missing_reason = 32;
1123pub const method_missing_reason_MISSING_NONE: method_missing_reason = 64;
1124pub type method_missing_reason = ::std::os::raw::c_uint;
1125#[repr(C)]
1126#[derive(Debug, Copy, Clone)]
1127pub struct rb_call_info {
1128    pub mid: ID,
1129    pub flag: ::std::os::raw::c_uint,
1130    pub orig_argc: ::std::os::raw::c_int,
1131}
1132#[repr(C)]
1133#[derive(Debug, Copy, Clone)]
1134pub struct rb_calling_info {
1135    pub block_handler: VALUE,
1136    pub recv: VALUE,
1137    pub argc: ::std::os::raw::c_int,
1138}
1139pub type vm_call_handler = ::std::option::Option<
1140    unsafe extern "C" fn(
1141        ec: *mut rb_execution_context_struct,
1142        cfp: *mut rb_control_frame_struct,
1143        calling: *mut rb_calling_info,
1144        ci: *const rb_call_info,
1145        cc: *mut rb_call_cache,
1146    ) -> VALUE,
1147>;
1148#[repr(C)]
1149#[derive(Copy, Clone)]
1150pub struct rb_call_cache {
1151    pub method_state: rb_serial_t,
1152    pub class_serial: rb_serial_t,
1153    pub me: *const rb_callable_method_entry_t,
1154    pub call: vm_call_handler,
1155    pub aux: rb_call_cache__bindgen_ty_1,
1156}
1157#[repr(C)]
1158#[derive(Copy, Clone)]
1159pub union rb_call_cache__bindgen_ty_1 {
1160    pub index: ::std::os::raw::c_uint,
1161    pub method_missing_reason: method_missing_reason,
1162    pub inc_sp: ::std::os::raw::c_int,
1163}
1164impl ::std::fmt::Debug for rb_call_cache__bindgen_ty_1 {
1165    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1166        write!(f, "rb_call_cache__bindgen_ty_1 {{ union }}")
1167    }
1168}
1169impl ::std::fmt::Debug for rb_call_cache {
1170    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1171        write ! (f , "rb_call_cache {{ method_state: {:?}, class_serial: {:?}, me: {:?}, call: {:?}, aux: {:?} }}" , self . method_state , self . class_serial , self . me , self . call , self . aux)
1172    }
1173}
1174#[repr(C)]
1175#[derive(Debug, Copy, Clone)]
1176pub struct rb_iseq_location_struct {
1177    pub pathobj: VALUE,
1178    pub base_label: VALUE,
1179    pub label: VALUE,
1180    pub first_lineno: VALUE,
1181    pub code_range: rb_code_range_t,
1182}
1183pub type rb_iseq_location_t = rb_iseq_location_struct;
1184#[repr(C)]
1185#[derive(Debug, Copy, Clone)]
1186pub struct rb_iseq_constant_body {
1187    pub type_: rb_iseq_constant_body_iseq_type,
1188    pub iseq_size: ::std::os::raw::c_uint,
1189    pub iseq_encoded: *const VALUE,
1190    pub param: rb_iseq_constant_body__bindgen_ty_1,
1191    pub location: rb_iseq_location_t,
1192    pub insns_info: *const iseq_insn_info_entry,
1193    pub local_table: *const ID,
1194    pub catch_table: *const iseq_catch_table,
1195    pub parent_iseq: *const rb_iseq_struct,
1196    pub local_iseq: *mut rb_iseq_struct,
1197    pub is_entries: *mut iseq_inline_storage_entry,
1198    pub ci_entries: *mut rb_call_info,
1199    pub cc_entries: *mut rb_call_cache,
1200    pub mark_ary: VALUE,
1201    pub local_table_size: ::std::os::raw::c_uint,
1202    pub is_size: ::std::os::raw::c_uint,
1203    pub ci_size: ::std::os::raw::c_uint,
1204    pub ci_kw_size: ::std::os::raw::c_uint,
1205    pub insns_info_size: ::std::os::raw::c_uint,
1206    pub stack_max: ::std::os::raw::c_uint,
1207}
1208pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_TOP: rb_iseq_constant_body_iseq_type = 0;
1209pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_constant_body_iseq_type = 1;
1210pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_constant_body_iseq_type = 2;
1211pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_constant_body_iseq_type = 3;
1212pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_constant_body_iseq_type = 4;
1213pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_constant_body_iseq_type = 5;
1214pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_constant_body_iseq_type = 6;
1215pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_constant_body_iseq_type = 7;
1216pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_DEFINED_GUARD: rb_iseq_constant_body_iseq_type =
1217    8;
1218pub type rb_iseq_constant_body_iseq_type = ::std::os::raw::c_uint;
1219#[repr(C)]
1220#[derive(Debug, Copy, Clone)]
1221pub struct rb_iseq_constant_body__bindgen_ty_1 {
1222    pub flags: rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1,
1223    pub size: ::std::os::raw::c_uint,
1224    pub lead_num: ::std::os::raw::c_int,
1225    pub opt_num: ::std::os::raw::c_int,
1226    pub rest_start: ::std::os::raw::c_int,
1227    pub post_start: ::std::os::raw::c_int,
1228    pub post_num: ::std::os::raw::c_int,
1229    pub block_start: ::std::os::raw::c_int,
1230    pub opt_table: *const VALUE,
1231    pub keyword: *const rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword,
1232}
1233#[repr(C)]
1234#[repr(align(4))]
1235#[derive(Debug, Copy, Clone)]
1236pub struct rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1237    pub _bitfield_align_1: [u8; 0],
1238    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1239    pub __bindgen_padding_0: [u8; 3usize],
1240}
1241impl rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1242    #[inline]
1243    pub fn has_lead(&self) -> ::std::os::raw::c_uint {
1244        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1245    }
1246    #[inline]
1247    pub fn set_has_lead(&mut self, val: ::std::os::raw::c_uint) {
1248        unsafe {
1249            let val: u32 = ::std::mem::transmute(val);
1250            self._bitfield_1.set(0usize, 1u8, val as u64)
1251        }
1252    }
1253    #[inline]
1254    pub unsafe fn has_lead_raw(this: *const Self) -> ::std::os::raw::c_uint {
1255        unsafe {
1256            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1257                ::std::ptr::addr_of!((*this)._bitfield_1),
1258                0usize,
1259                1u8,
1260            ) as u32)
1261        }
1262    }
1263    #[inline]
1264    pub unsafe fn set_has_lead_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1265        unsafe {
1266            let val: u32 = ::std::mem::transmute(val);
1267            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1268                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1269                0usize,
1270                1u8,
1271                val as u64,
1272            )
1273        }
1274    }
1275    #[inline]
1276    pub fn has_opt(&self) -> ::std::os::raw::c_uint {
1277        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1278    }
1279    #[inline]
1280    pub fn set_has_opt(&mut self, val: ::std::os::raw::c_uint) {
1281        unsafe {
1282            let val: u32 = ::std::mem::transmute(val);
1283            self._bitfield_1.set(1usize, 1u8, val as u64)
1284        }
1285    }
1286    #[inline]
1287    pub unsafe fn has_opt_raw(this: *const Self) -> ::std::os::raw::c_uint {
1288        unsafe {
1289            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1290                ::std::ptr::addr_of!((*this)._bitfield_1),
1291                1usize,
1292                1u8,
1293            ) as u32)
1294        }
1295    }
1296    #[inline]
1297    pub unsafe fn set_has_opt_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1298        unsafe {
1299            let val: u32 = ::std::mem::transmute(val);
1300            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1301                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1302                1usize,
1303                1u8,
1304                val as u64,
1305            )
1306        }
1307    }
1308    #[inline]
1309    pub fn has_rest(&self) -> ::std::os::raw::c_uint {
1310        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1311    }
1312    #[inline]
1313    pub fn set_has_rest(&mut self, val: ::std::os::raw::c_uint) {
1314        unsafe {
1315            let val: u32 = ::std::mem::transmute(val);
1316            self._bitfield_1.set(2usize, 1u8, val as u64)
1317        }
1318    }
1319    #[inline]
1320    pub unsafe fn has_rest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1321        unsafe {
1322            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1323                ::std::ptr::addr_of!((*this)._bitfield_1),
1324                2usize,
1325                1u8,
1326            ) as u32)
1327        }
1328    }
1329    #[inline]
1330    pub unsafe fn set_has_rest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1331        unsafe {
1332            let val: u32 = ::std::mem::transmute(val);
1333            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1334                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1335                2usize,
1336                1u8,
1337                val as u64,
1338            )
1339        }
1340    }
1341    #[inline]
1342    pub fn has_post(&self) -> ::std::os::raw::c_uint {
1343        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
1344    }
1345    #[inline]
1346    pub fn set_has_post(&mut self, val: ::std::os::raw::c_uint) {
1347        unsafe {
1348            let val: u32 = ::std::mem::transmute(val);
1349            self._bitfield_1.set(3usize, 1u8, val as u64)
1350        }
1351    }
1352    #[inline]
1353    pub unsafe fn has_post_raw(this: *const Self) -> ::std::os::raw::c_uint {
1354        unsafe {
1355            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1356                ::std::ptr::addr_of!((*this)._bitfield_1),
1357                3usize,
1358                1u8,
1359            ) as u32)
1360        }
1361    }
1362    #[inline]
1363    pub unsafe fn set_has_post_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1364        unsafe {
1365            let val: u32 = ::std::mem::transmute(val);
1366            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1367                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1368                3usize,
1369                1u8,
1370                val as u64,
1371            )
1372        }
1373    }
1374    #[inline]
1375    pub fn has_kw(&self) -> ::std::os::raw::c_uint {
1376        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1377    }
1378    #[inline]
1379    pub fn set_has_kw(&mut self, val: ::std::os::raw::c_uint) {
1380        unsafe {
1381            let val: u32 = ::std::mem::transmute(val);
1382            self._bitfield_1.set(4usize, 1u8, val as u64)
1383        }
1384    }
1385    #[inline]
1386    pub unsafe fn has_kw_raw(this: *const Self) -> ::std::os::raw::c_uint {
1387        unsafe {
1388            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1389                ::std::ptr::addr_of!((*this)._bitfield_1),
1390                4usize,
1391                1u8,
1392            ) as u32)
1393        }
1394    }
1395    #[inline]
1396    pub unsafe fn set_has_kw_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1397        unsafe {
1398            let val: u32 = ::std::mem::transmute(val);
1399            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1400                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1401                4usize,
1402                1u8,
1403                val as u64,
1404            )
1405        }
1406    }
1407    #[inline]
1408    pub fn has_kwrest(&self) -> ::std::os::raw::c_uint {
1409        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1410    }
1411    #[inline]
1412    pub fn set_has_kwrest(&mut self, val: ::std::os::raw::c_uint) {
1413        unsafe {
1414            let val: u32 = ::std::mem::transmute(val);
1415            self._bitfield_1.set(5usize, 1u8, val as u64)
1416        }
1417    }
1418    #[inline]
1419    pub unsafe fn has_kwrest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1420        unsafe {
1421            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1422                ::std::ptr::addr_of!((*this)._bitfield_1),
1423                5usize,
1424                1u8,
1425            ) as u32)
1426        }
1427    }
1428    #[inline]
1429    pub unsafe fn set_has_kwrest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1430        unsafe {
1431            let val: u32 = ::std::mem::transmute(val);
1432            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1433                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1434                5usize,
1435                1u8,
1436                val as u64,
1437            )
1438        }
1439    }
1440    #[inline]
1441    pub fn has_block(&self) -> ::std::os::raw::c_uint {
1442        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
1443    }
1444    #[inline]
1445    pub fn set_has_block(&mut self, val: ::std::os::raw::c_uint) {
1446        unsafe {
1447            let val: u32 = ::std::mem::transmute(val);
1448            self._bitfield_1.set(6usize, 1u8, val as u64)
1449        }
1450    }
1451    #[inline]
1452    pub unsafe fn has_block_raw(this: *const Self) -> ::std::os::raw::c_uint {
1453        unsafe {
1454            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1455                ::std::ptr::addr_of!((*this)._bitfield_1),
1456                6usize,
1457                1u8,
1458            ) as u32)
1459        }
1460    }
1461    #[inline]
1462    pub unsafe fn set_has_block_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1463        unsafe {
1464            let val: u32 = ::std::mem::transmute(val);
1465            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1466                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1467                6usize,
1468                1u8,
1469                val as u64,
1470            )
1471        }
1472    }
1473    #[inline]
1474    pub fn ambiguous_param0(&self) -> ::std::os::raw::c_uint {
1475        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
1476    }
1477    #[inline]
1478    pub fn set_ambiguous_param0(&mut self, val: ::std::os::raw::c_uint) {
1479        unsafe {
1480            let val: u32 = ::std::mem::transmute(val);
1481            self._bitfield_1.set(7usize, 1u8, val as u64)
1482        }
1483    }
1484    #[inline]
1485    pub unsafe fn ambiguous_param0_raw(this: *const Self) -> ::std::os::raw::c_uint {
1486        unsafe {
1487            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1488                ::std::ptr::addr_of!((*this)._bitfield_1),
1489                7usize,
1490                1u8,
1491            ) as u32)
1492        }
1493    }
1494    #[inline]
1495    pub unsafe fn set_ambiguous_param0_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1496        unsafe {
1497            let val: u32 = ::std::mem::transmute(val);
1498            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1499                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1500                7usize,
1501                1u8,
1502                val as u64,
1503            )
1504        }
1505    }
1506    #[inline]
1507    pub fn new_bitfield_1(
1508        has_lead: ::std::os::raw::c_uint,
1509        has_opt: ::std::os::raw::c_uint,
1510        has_rest: ::std::os::raw::c_uint,
1511        has_post: ::std::os::raw::c_uint,
1512        has_kw: ::std::os::raw::c_uint,
1513        has_kwrest: ::std::os::raw::c_uint,
1514        has_block: ::std::os::raw::c_uint,
1515        ambiguous_param0: ::std::os::raw::c_uint,
1516    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1517        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1518        __bindgen_bitfield_unit.set(0usize, 1u8, {
1519            let has_lead: u32 = unsafe { ::std::mem::transmute(has_lead) };
1520            has_lead as u64
1521        });
1522        __bindgen_bitfield_unit.set(1usize, 1u8, {
1523            let has_opt: u32 = unsafe { ::std::mem::transmute(has_opt) };
1524            has_opt as u64
1525        });
1526        __bindgen_bitfield_unit.set(2usize, 1u8, {
1527            let has_rest: u32 = unsafe { ::std::mem::transmute(has_rest) };
1528            has_rest as u64
1529        });
1530        __bindgen_bitfield_unit.set(3usize, 1u8, {
1531            let has_post: u32 = unsafe { ::std::mem::transmute(has_post) };
1532            has_post as u64
1533        });
1534        __bindgen_bitfield_unit.set(4usize, 1u8, {
1535            let has_kw: u32 = unsafe { ::std::mem::transmute(has_kw) };
1536            has_kw as u64
1537        });
1538        __bindgen_bitfield_unit.set(5usize, 1u8, {
1539            let has_kwrest: u32 = unsafe { ::std::mem::transmute(has_kwrest) };
1540            has_kwrest as u64
1541        });
1542        __bindgen_bitfield_unit.set(6usize, 1u8, {
1543            let has_block: u32 = unsafe { ::std::mem::transmute(has_block) };
1544            has_block as u64
1545        });
1546        __bindgen_bitfield_unit.set(7usize, 1u8, {
1547            let ambiguous_param0: u32 = unsafe { ::std::mem::transmute(ambiguous_param0) };
1548            ambiguous_param0 as u64
1549        });
1550        __bindgen_bitfield_unit
1551    }
1552}
1553#[repr(C)]
1554#[derive(Debug, Copy, Clone)]
1555pub struct rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword {
1556    pub num: ::std::os::raw::c_int,
1557    pub required_num: ::std::os::raw::c_int,
1558    pub bits_start: ::std::os::raw::c_int,
1559    pub rest_start: ::std::os::raw::c_int,
1560    pub table: *const ID,
1561    pub default_values: *const VALUE,
1562}
1563#[repr(C)]
1564#[derive(Copy, Clone)]
1565pub struct rb_iseq_struct {
1566    pub flags: VALUE,
1567    pub reserved1: VALUE,
1568    pub body: *mut rb_iseq_constant_body,
1569    pub aux: rb_iseq_struct__bindgen_ty_1,
1570}
1571#[repr(C)]
1572#[derive(Copy, Clone)]
1573pub union rb_iseq_struct__bindgen_ty_1 {
1574    pub compile_data: *mut iseq_compile_data,
1575    pub loader: rb_iseq_struct__bindgen_ty_1__bindgen_ty_1,
1576    pub trace_events: rb_event_flag_t,
1577}
1578#[repr(C)]
1579#[derive(Debug, Copy, Clone)]
1580pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_1 {
1581    pub obj: VALUE,
1582    pub index: ::std::os::raw::c_int,
1583}
1584impl ::std::fmt::Debug for rb_iseq_struct__bindgen_ty_1 {
1585    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1586        write!(f, "rb_iseq_struct__bindgen_ty_1 {{ union }}")
1587    }
1588}
1589impl ::std::fmt::Debug for rb_iseq_struct {
1590    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1591        write!(
1592            f,
1593            "rb_iseq_struct {{ flags: {:?}, reserved1: {:?}, body: {:?}, aux: {:?} }}",
1594            self.flags, self.reserved1, self.body, self.aux
1595        )
1596    }
1597}
1598pub type rb_vm_at_exit_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut rb_vm_struct)>;
1599#[repr(C)]
1600#[derive(Debug, Copy, Clone)]
1601pub struct rb_at_exit_list {
1602    pub func: rb_vm_at_exit_func,
1603    pub next: *mut rb_at_exit_list,
1604}
1605#[repr(C)]
1606#[derive(Debug, Copy, Clone)]
1607pub struct rb_objspace {
1608    _unused: [u8; 0],
1609}
1610#[repr(C)]
1611#[derive(Debug, Copy, Clone)]
1612pub struct rb_hook_list_struct {
1613    pub hooks: *mut rb_event_hook_struct,
1614    pub events: rb_event_flag_t,
1615    pub need_clean: ::std::os::raw::c_int,
1616}
1617pub type rb_hook_list_t = rb_hook_list_struct;
1618#[repr(C)]
1619#[derive(Copy, Clone)]
1620pub struct rb_vm_struct {
1621    pub self_: VALUE,
1622    pub gvl: rb_global_vm_lock_t,
1623    pub thread_destruct_lock: rb_nativethread_lock_t,
1624    pub main_thread: *mut rb_thread_struct,
1625    pub running_thread: *mut rb_thread_struct,
1626    pub fork_gen: rb_serial_t,
1627    pub waiting_fds: list_head,
1628    pub living_threads: list_head,
1629    pub living_thread_num: usize,
1630    pub thgroup_default: VALUE,
1631    pub _bitfield_align_1: [u8; 0],
1632    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1633    pub trace_running: ::std::os::raw::c_int,
1634    pub sleeper: ::std::os::raw::c_int,
1635    pub mark_object_ary: VALUE,
1636    pub special_exceptions: [VALUE; 5usize],
1637    pub top_self: VALUE,
1638    pub load_path: VALUE,
1639    pub load_path_snapshot: VALUE,
1640    pub load_path_check_cache: VALUE,
1641    pub expanded_load_path: VALUE,
1642    pub loaded_features: VALUE,
1643    pub loaded_features_snapshot: VALUE,
1644    pub loaded_features_index: *mut st_table,
1645    pub loading_table: *mut st_table,
1646    pub trap_list: rb_vm_struct__bindgen_ty_1,
1647    pub event_hooks: rb_hook_list_t,
1648    pub ensure_rollback_table: *mut st_table,
1649    pub postponed_job_buffer: *mut rb_postponed_job_struct,
1650    pub postponed_job_index: ::std::os::raw::c_int,
1651    pub src_encoding_index: ::std::os::raw::c_int,
1652    pub verbose: VALUE,
1653    pub debug: VALUE,
1654    pub orig_progname: VALUE,
1655    pub progname: VALUE,
1656    pub coverages: VALUE,
1657    pub coverage_mode: ::std::os::raw::c_int,
1658    pub defined_module_hash: VALUE,
1659    pub objspace: *mut rb_objspace,
1660    pub at_exit: *mut rb_at_exit_list,
1661    pub defined_strings: *mut VALUE,
1662    pub frozen_strings: *mut st_table,
1663    pub default_params: rb_vm_struct__bindgen_ty_2,
1664    pub redefined_flag: [::std::os::raw::c_short; 25usize],
1665}
1666#[repr(C)]
1667#[derive(Debug, Copy, Clone)]
1668pub struct rb_vm_struct__bindgen_ty_1 {
1669    pub cmd: [VALUE; 65usize],
1670    pub safe: [::std::os::raw::c_uchar; 65usize],
1671}
1672#[repr(C)]
1673#[derive(Debug, Copy, Clone)]
1674pub struct rb_vm_struct__bindgen_ty_2 {
1675    pub thread_vm_stack_size: usize,
1676    pub thread_machine_stack_size: usize,
1677    pub fiber_vm_stack_size: usize,
1678    pub fiber_machine_stack_size: usize,
1679}
1680impl ::std::fmt::Debug for rb_vm_struct {
1681    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1682        write ! (f , "rb_vm_struct {{ self: {:?}, gvl: {:?}, thread_destruct_lock: {:?}, main_thread: {:?}, running_thread: {:?}, fork_gen: {:?}, waiting_fds: {:?}, living_threads: {:?}, thgroup_default: {:?}, running : {:?}, thread_abort_on_exception : {:?}, thread_report_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: {:?}, coverage_mode: {:?}, 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 . fork_gen , self . waiting_fds , self . living_threads , self . thgroup_default , self . running () , self . thread_abort_on_exception () , self . thread_report_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 . coverage_mode , self . defined_module_hash , self . objspace , self . at_exit , self . defined_strings , self . frozen_strings , self . default_params , self . redefined_flag)
1683    }
1684}
1685impl rb_vm_struct {
1686    #[inline]
1687    pub fn running(&self) -> ::std::os::raw::c_uint {
1688        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1689    }
1690    #[inline]
1691    pub fn set_running(&mut self, val: ::std::os::raw::c_uint) {
1692        unsafe {
1693            let val: u32 = ::std::mem::transmute(val);
1694            self._bitfield_1.set(0usize, 1u8, val as u64)
1695        }
1696    }
1697    #[inline]
1698    pub unsafe fn running_raw(this: *const Self) -> ::std::os::raw::c_uint {
1699        unsafe {
1700            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1701                ::std::ptr::addr_of!((*this)._bitfield_1),
1702                0usize,
1703                1u8,
1704            ) as u32)
1705        }
1706    }
1707    #[inline]
1708    pub unsafe fn set_running_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1709        unsafe {
1710            let val: u32 = ::std::mem::transmute(val);
1711            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1712                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1713                0usize,
1714                1u8,
1715                val as u64,
1716            )
1717        }
1718    }
1719    #[inline]
1720    pub fn thread_abort_on_exception(&self) -> ::std::os::raw::c_uint {
1721        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1722    }
1723    #[inline]
1724    pub fn set_thread_abort_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1725        unsafe {
1726            let val: u32 = ::std::mem::transmute(val);
1727            self._bitfield_1.set(1usize, 1u8, val as u64)
1728        }
1729    }
1730    #[inline]
1731    pub unsafe fn thread_abort_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1732        unsafe {
1733            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1734                ::std::ptr::addr_of!((*this)._bitfield_1),
1735                1usize,
1736                1u8,
1737            ) as u32)
1738        }
1739    }
1740    #[inline]
1741    pub unsafe fn set_thread_abort_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1742        unsafe {
1743            let val: u32 = ::std::mem::transmute(val);
1744            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1745                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1746                1usize,
1747                1u8,
1748                val as u64,
1749            )
1750        }
1751    }
1752    #[inline]
1753    pub fn thread_report_on_exception(&self) -> ::std::os::raw::c_uint {
1754        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1755    }
1756    #[inline]
1757    pub fn set_thread_report_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1758        unsafe {
1759            let val: u32 = ::std::mem::transmute(val);
1760            self._bitfield_1.set(2usize, 1u8, val as u64)
1761        }
1762    }
1763    #[inline]
1764    pub unsafe fn thread_report_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1765        unsafe {
1766            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1767                ::std::ptr::addr_of!((*this)._bitfield_1),
1768                2usize,
1769                1u8,
1770            ) as u32)
1771        }
1772    }
1773    #[inline]
1774    pub unsafe fn set_thread_report_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1775        unsafe {
1776            let val: u32 = ::std::mem::transmute(val);
1777            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1778                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1779                2usize,
1780                1u8,
1781                val as u64,
1782            )
1783        }
1784    }
1785    #[inline]
1786    pub fn new_bitfield_1(
1787        running: ::std::os::raw::c_uint,
1788        thread_abort_on_exception: ::std::os::raw::c_uint,
1789        thread_report_on_exception: ::std::os::raw::c_uint,
1790    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1791        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1792        __bindgen_bitfield_unit.set(0usize, 1u8, {
1793            let running: u32 = unsafe { ::std::mem::transmute(running) };
1794            running as u64
1795        });
1796        __bindgen_bitfield_unit.set(1usize, 1u8, {
1797            let thread_abort_on_exception: u32 =
1798                unsafe { ::std::mem::transmute(thread_abort_on_exception) };
1799            thread_abort_on_exception as u64
1800        });
1801        __bindgen_bitfield_unit.set(2usize, 1u8, {
1802            let thread_report_on_exception: u32 =
1803                unsafe { ::std::mem::transmute(thread_report_on_exception) };
1804            thread_report_on_exception as u64
1805        });
1806        __bindgen_bitfield_unit
1807    }
1808}
1809pub type rb_vm_t = rb_vm_struct;
1810#[repr(C)]
1811#[derive(Debug, Copy, Clone)]
1812pub struct rb_control_frame_struct {
1813    pub pc: *const VALUE,
1814    pub sp: *mut VALUE,
1815    pub iseq: *const rb_iseq_t,
1816    pub self_: VALUE,
1817    pub ep: *const VALUE,
1818    pub block_code: *const ::std::os::raw::c_void,
1819}
1820pub type rb_control_frame_t = rb_control_frame_struct;
1821pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 0;
1822pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 1;
1823pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 2;
1824pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 3;
1825pub type rb_thread_status = ::std::os::raw::c_uint;
1826pub type rb_jmpbuf_t = jmp_buf;
1827#[repr(C)]
1828#[derive(Debug, Copy, Clone)]
1829pub struct rb_vm_tag {
1830    pub tag: VALUE,
1831    pub retval: VALUE,
1832    pub buf: rb_jmpbuf_t,
1833    pub prev: *mut rb_vm_tag,
1834    pub state: ruby_tag_type,
1835}
1836#[repr(C)]
1837#[derive(Debug, Copy, Clone)]
1838pub struct rb_vm_protect_tag {
1839    pub prev: *mut rb_vm_protect_tag,
1840}
1841#[repr(C)]
1842#[derive(Debug, Copy, Clone)]
1843pub struct rb_unblock_callback {
1844    pub func: rb_unblock_function_t,
1845    pub arg: *mut ::std::os::raw::c_void,
1846}
1847#[repr(C)]
1848#[derive(Debug, Copy, Clone)]
1849pub struct rb_mutex_struct {
1850    _unused: [u8; 0],
1851}
1852#[repr(C)]
1853#[derive(Debug, Copy, Clone)]
1854pub struct rb_thread_list_struct {
1855    pub next: *mut rb_thread_list_struct,
1856    pub th: *mut rb_thread_struct,
1857}
1858pub type rb_thread_list_t = rb_thread_list_struct;
1859#[repr(C)]
1860#[derive(Debug, Copy, Clone)]
1861pub struct rb_ensure_entry {
1862    pub marker: VALUE,
1863    pub e_proc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1864    pub data2: VALUE,
1865}
1866#[repr(C)]
1867#[derive(Debug, Copy, Clone)]
1868pub struct rb_ensure_list {
1869    pub next: *mut rb_ensure_list,
1870    pub entry: rb_ensure_entry,
1871}
1872pub type rb_ensure_list_t = rb_ensure_list;
1873#[repr(C)]
1874#[derive(Debug, Copy, Clone)]
1875pub struct rb_fiber_struct {
1876    _unused: [u8; 0],
1877}
1878pub type rb_fiber_t = rb_fiber_struct;
1879#[repr(C)]
1880#[derive(Debug, Copy, Clone)]
1881pub struct rb_execution_context_struct {
1882    pub vm_stack: *mut VALUE,
1883    pub vm_stack_size: usize,
1884    pub cfp: *mut rb_control_frame_t,
1885    pub tag: *mut rb_vm_tag,
1886    pub protect_tag: *mut rb_vm_protect_tag,
1887    pub safe_level: ::std::os::raw::c_int,
1888    pub raised_flag: ::std::os::raw::c_int,
1889    pub interrupt_flag: rb_atomic_t,
1890    pub interrupt_mask: ::std::os::raw::c_ulong,
1891    pub fiber_ptr: *mut rb_fiber_t,
1892    pub thread_ptr: *mut rb_thread_struct,
1893    pub local_storage: *mut st_table,
1894    pub local_storage_recursive_hash: VALUE,
1895    pub local_storage_recursive_hash_for_trace: VALUE,
1896    pub root_lep: *const VALUE,
1897    pub root_svar: VALUE,
1898    pub ensure_list: *mut rb_ensure_list_t,
1899    pub trace_arg: *mut rb_trace_arg_struct,
1900    pub errinfo: VALUE,
1901    pub passed_block_handler: VALUE,
1902    pub passed_bmethod_me: *const rb_callable_method_entry_t,
1903    pub method_missing_reason: method_missing_reason,
1904    pub machine: rb_execution_context_struct__bindgen_ty_1,
1905}
1906#[repr(C)]
1907#[derive(Debug, Copy, Clone)]
1908pub struct rb_execution_context_struct__bindgen_ty_1 {
1909    pub stack_start: *mut VALUE,
1910    pub stack_end: *mut VALUE,
1911    pub stack_maxsize: usize,
1912    pub regs: jmp_buf,
1913}
1914pub type rb_execution_context_t = rb_execution_context_struct;
1915#[repr(C)]
1916#[derive(Copy, Clone)]
1917pub struct rb_thread_struct {
1918    pub vmlt_node: list_node,
1919    pub self_: VALUE,
1920    pub vm: *mut rb_vm_t,
1921    pub ec: *mut rb_execution_context_t,
1922    pub last_status: VALUE,
1923    pub calling: *mut rb_calling_info,
1924    pub top_self: VALUE,
1925    pub top_wrapper: VALUE,
1926    pub thread_id: rb_nativethread_id_t,
1927    pub status: rb_thread_status,
1928    pub to_kill: ::std::os::raw::c_int,
1929    pub priority: ::std::os::raw::c_int,
1930    pub native_thread_data: native_thread_data_t,
1931    pub blocking_region_buffer: *mut ::std::os::raw::c_void,
1932    pub thgroup: VALUE,
1933    pub value: VALUE,
1934    pub pending_interrupt_queue: VALUE,
1935    pub pending_interrupt_mask_stack: VALUE,
1936    pub pending_interrupt_queue_checked: ::std::os::raw::c_int,
1937    pub interrupt_lock: rb_nativethread_lock_t,
1938    pub unblock: rb_unblock_callback,
1939    pub locking_mutex: VALUE,
1940    pub keeping_mutexes: *mut rb_mutex_struct,
1941    pub join_list: *mut rb_thread_list_t,
1942    pub first_proc: VALUE,
1943    pub first_args: VALUE,
1944    pub first_func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1945    pub stat_insn_usage: VALUE,
1946    pub root_fiber: *mut rb_fiber_t,
1947    pub root_jmpbuf: rb_jmpbuf_t,
1948    pub _bitfield_align_1: [u8; 0],
1949    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1950    pub altstack: *mut ::std::os::raw::c_void,
1951    pub running_time_us: u32,
1952    pub name: VALUE,
1953}
1954impl ::std::fmt::Debug for rb_thread_struct {
1955    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1956        write ! (f , "rb_thread_struct {{ vmlt_node: {:?}, self: {:?}, vm: {:?}, ec: {:?}, last_status: {:?}, calling: {:?}, top_self: {:?}, top_wrapper: {:?}, thread_id: {:?}, status: {:?}, to_kill: {:?}, priority: {:?}, native_thread_data: {:?}, blocking_region_buffer: {:?}, thgroup: {:?}, value: {:?}, pending_interrupt_queue: {:?}, pending_interrupt_mask_stack: {:?}, pending_interrupt_queue_checked: {:?}, interrupt_lock: {:?}, unblock: {:?}, locking_mutex: {:?}, keeping_mutexes: {:?}, join_list: {:?}, first_proc: {:?}, first_args: {:?}, first_func: {:?}, stat_insn_usage: {:?}, root_fiber: {:?}, root_jmpbuf: {:?}, abort_on_exception : {:?}, report_on_exception : {:?}, altstack: {:?}, name: {:?} }}" , self . vmlt_node , self . self_ , self . vm , self . ec , self . last_status , self . calling , self . top_self , self . top_wrapper , self . thread_id , self . status , self . to_kill , self . priority , self . native_thread_data , self . blocking_region_buffer , self . thgroup , self . value , self . pending_interrupt_queue , self . pending_interrupt_mask_stack , self . pending_interrupt_queue_checked , self . interrupt_lock , self . unblock , self . locking_mutex , self . keeping_mutexes , self . join_list , self . first_proc , self . first_args , self . first_func , self . stat_insn_usage , self . root_fiber , self . root_jmpbuf , self . abort_on_exception () , self . report_on_exception () , self . altstack , self . name)
1957    }
1958}
1959impl rb_thread_struct {
1960    #[inline]
1961    pub fn abort_on_exception(&self) -> ::std::os::raw::c_uint {
1962        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1963    }
1964    #[inline]
1965    pub fn set_abort_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1966        unsafe {
1967            let val: u32 = ::std::mem::transmute(val);
1968            self._bitfield_1.set(0usize, 1u8, val as u64)
1969        }
1970    }
1971    #[inline]
1972    pub unsafe fn abort_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1973        unsafe {
1974            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1975                ::std::ptr::addr_of!((*this)._bitfield_1),
1976                0usize,
1977                1u8,
1978            ) as u32)
1979        }
1980    }
1981    #[inline]
1982    pub unsafe fn set_abort_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1983        unsafe {
1984            let val: u32 = ::std::mem::transmute(val);
1985            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1986                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1987                0usize,
1988                1u8,
1989                val as u64,
1990            )
1991        }
1992    }
1993    #[inline]
1994    pub fn report_on_exception(&self) -> ::std::os::raw::c_uint {
1995        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1996    }
1997    #[inline]
1998    pub fn set_report_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1999        unsafe {
2000            let val: u32 = ::std::mem::transmute(val);
2001            self._bitfield_1.set(1usize, 1u8, val as u64)
2002        }
2003    }
2004    #[inline]
2005    pub unsafe fn report_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
2006        unsafe {
2007            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2008                ::std::ptr::addr_of!((*this)._bitfield_1),
2009                1usize,
2010                1u8,
2011            ) as u32)
2012        }
2013    }
2014    #[inline]
2015    pub unsafe fn set_report_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2016        unsafe {
2017            let val: u32 = ::std::mem::transmute(val);
2018            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2019                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2020                1usize,
2021                1u8,
2022                val as u64,
2023            )
2024        }
2025    }
2026    #[inline]
2027    pub fn new_bitfield_1(
2028        abort_on_exception: ::std::os::raw::c_uint,
2029        report_on_exception: ::std::os::raw::c_uint,
2030    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2031        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2032        __bindgen_bitfield_unit.set(0usize, 1u8, {
2033            let abort_on_exception: u32 = unsafe { ::std::mem::transmute(abort_on_exception) };
2034            abort_on_exception as u64
2035        });
2036        __bindgen_bitfield_unit.set(1usize, 1u8, {
2037            let report_on_exception: u32 = unsafe { ::std::mem::transmute(report_on_exception) };
2038            report_on_exception as u64
2039        });
2040        __bindgen_bitfield_unit
2041    }
2042}
2043pub type rb_thread_t = rb_thread_struct;
2044#[repr(C)]
2045#[derive(Debug, Copy, Clone)]
2046pub struct rb_trace_arg_struct {
2047    pub event: rb_event_flag_t,
2048    pub ec: *mut rb_execution_context_t,
2049    pub cfp: *const rb_control_frame_t,
2050    pub self_: VALUE,
2051    pub id: ID,
2052    pub called_id: ID,
2053    pub klass: VALUE,
2054    pub data: VALUE,
2055    pub klass_solved: ::std::os::raw::c_int,
2056    pub lineno: ::std::os::raw::c_int,
2057    pub path: VALUE,
2058}
2059#[repr(C)]
2060#[derive(Debug, Copy, Clone)]
2061pub struct iseq_compile_data {
2062    pub err_info: VALUE,
2063    pub mark_ary: VALUE,
2064    pub catch_table_ary: VALUE,
2065    pub start_label: *mut iseq_label_data,
2066    pub end_label: *mut iseq_label_data,
2067    pub redo_label: *mut iseq_label_data,
2068    pub current_block: *const rb_iseq_t,
2069    pub ensure_node: VALUE,
2070    pub for_iseq: VALUE,
2071    pub ensure_node_stack: *mut iseq_compile_data_ensure_node_stack,
2072    pub loopval_popped: ::std::os::raw::c_int,
2073    pub cached_const: ::std::os::raw::c_int,
2074    pub storage_head: *mut iseq_compile_data_storage,
2075    pub storage_current: *mut iseq_compile_data_storage,
2076    pub last_line: ::std::os::raw::c_int,
2077    pub label_no: ::std::os::raw::c_int,
2078    pub node_level: ::std::os::raw::c_int,
2079    pub ci_index: ::std::os::raw::c_uint,
2080    pub ci_kw_index: ::std::os::raw::c_uint,
2081    pub option: *const rb_compile_option_t,
2082    pub ivar_cache_table: *mut rb_id_table,
2083}
2084#[repr(C)]
2085#[derive(Debug, Copy, Clone)]
2086pub struct rb_compile_option_struct {
2087    pub _bitfield_align_1: [u8; 0],
2088    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
2089    pub debug_level: ::std::os::raw::c_int,
2090}
2091impl rb_compile_option_struct {
2092    #[inline]
2093    pub fn inline_const_cache(&self) -> ::std::os::raw::c_uint {
2094        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
2095    }
2096    #[inline]
2097    pub fn set_inline_const_cache(&mut self, val: ::std::os::raw::c_uint) {
2098        unsafe {
2099            let val: u32 = ::std::mem::transmute(val);
2100            self._bitfield_1.set(0usize, 1u8, val as u64)
2101        }
2102    }
2103    #[inline]
2104    pub unsafe fn inline_const_cache_raw(this: *const Self) -> ::std::os::raw::c_uint {
2105        unsafe {
2106            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2107                ::std::ptr::addr_of!((*this)._bitfield_1),
2108                0usize,
2109                1u8,
2110            ) as u32)
2111        }
2112    }
2113    #[inline]
2114    pub unsafe fn set_inline_const_cache_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2115        unsafe {
2116            let val: u32 = ::std::mem::transmute(val);
2117            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2118                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2119                0usize,
2120                1u8,
2121                val as u64,
2122            )
2123        }
2124    }
2125    #[inline]
2126    pub fn peephole_optimization(&self) -> ::std::os::raw::c_uint {
2127        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
2128    }
2129    #[inline]
2130    pub fn set_peephole_optimization(&mut self, val: ::std::os::raw::c_uint) {
2131        unsafe {
2132            let val: u32 = ::std::mem::transmute(val);
2133            self._bitfield_1.set(1usize, 1u8, val as u64)
2134        }
2135    }
2136    #[inline]
2137    pub unsafe fn peephole_optimization_raw(this: *const Self) -> ::std::os::raw::c_uint {
2138        unsafe {
2139            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2140                ::std::ptr::addr_of!((*this)._bitfield_1),
2141                1usize,
2142                1u8,
2143            ) as u32)
2144        }
2145    }
2146    #[inline]
2147    pub unsafe fn set_peephole_optimization_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2148        unsafe {
2149            let val: u32 = ::std::mem::transmute(val);
2150            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2151                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2152                1usize,
2153                1u8,
2154                val as u64,
2155            )
2156        }
2157    }
2158    #[inline]
2159    pub fn tailcall_optimization(&self) -> ::std::os::raw::c_uint {
2160        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
2161    }
2162    #[inline]
2163    pub fn set_tailcall_optimization(&mut self, val: ::std::os::raw::c_uint) {
2164        unsafe {
2165            let val: u32 = ::std::mem::transmute(val);
2166            self._bitfield_1.set(2usize, 1u8, val as u64)
2167        }
2168    }
2169    #[inline]
2170    pub unsafe fn tailcall_optimization_raw(this: *const Self) -> ::std::os::raw::c_uint {
2171        unsafe {
2172            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2173                ::std::ptr::addr_of!((*this)._bitfield_1),
2174                2usize,
2175                1u8,
2176            ) as u32)
2177        }
2178    }
2179    #[inline]
2180    pub unsafe fn set_tailcall_optimization_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2181        unsafe {
2182            let val: u32 = ::std::mem::transmute(val);
2183            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2184                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2185                2usize,
2186                1u8,
2187                val as u64,
2188            )
2189        }
2190    }
2191    #[inline]
2192    pub fn specialized_instruction(&self) -> ::std::os::raw::c_uint {
2193        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
2194    }
2195    #[inline]
2196    pub fn set_specialized_instruction(&mut self, val: ::std::os::raw::c_uint) {
2197        unsafe {
2198            let val: u32 = ::std::mem::transmute(val);
2199            self._bitfield_1.set(3usize, 1u8, val as u64)
2200        }
2201    }
2202    #[inline]
2203    pub unsafe fn specialized_instruction_raw(this: *const Self) -> ::std::os::raw::c_uint {
2204        unsafe {
2205            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2206                ::std::ptr::addr_of!((*this)._bitfield_1),
2207                3usize,
2208                1u8,
2209            ) as u32)
2210        }
2211    }
2212    #[inline]
2213    pub unsafe fn set_specialized_instruction_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2214        unsafe {
2215            let val: u32 = ::std::mem::transmute(val);
2216            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2217                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2218                3usize,
2219                1u8,
2220                val as u64,
2221            )
2222        }
2223    }
2224    #[inline]
2225    pub fn operands_unification(&self) -> ::std::os::raw::c_uint {
2226        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
2227    }
2228    #[inline]
2229    pub fn set_operands_unification(&mut self, val: ::std::os::raw::c_uint) {
2230        unsafe {
2231            let val: u32 = ::std::mem::transmute(val);
2232            self._bitfield_1.set(4usize, 1u8, val as u64)
2233        }
2234    }
2235    #[inline]
2236    pub unsafe fn operands_unification_raw(this: *const Self) -> ::std::os::raw::c_uint {
2237        unsafe {
2238            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2239                ::std::ptr::addr_of!((*this)._bitfield_1),
2240                4usize,
2241                1u8,
2242            ) as u32)
2243        }
2244    }
2245    #[inline]
2246    pub unsafe fn set_operands_unification_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2247        unsafe {
2248            let val: u32 = ::std::mem::transmute(val);
2249            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2250                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2251                4usize,
2252                1u8,
2253                val as u64,
2254            )
2255        }
2256    }
2257    #[inline]
2258    pub fn instructions_unification(&self) -> ::std::os::raw::c_uint {
2259        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
2260    }
2261    #[inline]
2262    pub fn set_instructions_unification(&mut self, val: ::std::os::raw::c_uint) {
2263        unsafe {
2264            let val: u32 = ::std::mem::transmute(val);
2265            self._bitfield_1.set(5usize, 1u8, val as u64)
2266        }
2267    }
2268    #[inline]
2269    pub unsafe fn instructions_unification_raw(this: *const Self) -> ::std::os::raw::c_uint {
2270        unsafe {
2271            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2272                ::std::ptr::addr_of!((*this)._bitfield_1),
2273                5usize,
2274                1u8,
2275            ) as u32)
2276        }
2277    }
2278    #[inline]
2279    pub unsafe fn set_instructions_unification_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2280        unsafe {
2281            let val: u32 = ::std::mem::transmute(val);
2282            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2283                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2284                5usize,
2285                1u8,
2286                val as u64,
2287            )
2288        }
2289    }
2290    #[inline]
2291    pub fn stack_caching(&self) -> ::std::os::raw::c_uint {
2292        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
2293    }
2294    #[inline]
2295    pub fn set_stack_caching(&mut self, val: ::std::os::raw::c_uint) {
2296        unsafe {
2297            let val: u32 = ::std::mem::transmute(val);
2298            self._bitfield_1.set(6usize, 1u8, val as u64)
2299        }
2300    }
2301    #[inline]
2302    pub unsafe fn stack_caching_raw(this: *const Self) -> ::std::os::raw::c_uint {
2303        unsafe {
2304            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2305                ::std::ptr::addr_of!((*this)._bitfield_1),
2306                6usize,
2307                1u8,
2308            ) as u32)
2309        }
2310    }
2311    #[inline]
2312    pub unsafe fn set_stack_caching_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2313        unsafe {
2314            let val: u32 = ::std::mem::transmute(val);
2315            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2316                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2317                6usize,
2318                1u8,
2319                val as u64,
2320            )
2321        }
2322    }
2323    #[inline]
2324    pub fn frozen_string_literal(&self) -> ::std::os::raw::c_uint {
2325        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
2326    }
2327    #[inline]
2328    pub fn set_frozen_string_literal(&mut self, val: ::std::os::raw::c_uint) {
2329        unsafe {
2330            let val: u32 = ::std::mem::transmute(val);
2331            self._bitfield_1.set(7usize, 1u8, val as u64)
2332        }
2333    }
2334    #[inline]
2335    pub unsafe fn frozen_string_literal_raw(this: *const Self) -> ::std::os::raw::c_uint {
2336        unsafe {
2337            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2338                ::std::ptr::addr_of!((*this)._bitfield_1),
2339                7usize,
2340                1u8,
2341            ) as u32)
2342        }
2343    }
2344    #[inline]
2345    pub unsafe fn set_frozen_string_literal_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2346        unsafe {
2347            let val: u32 = ::std::mem::transmute(val);
2348            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2349                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2350                7usize,
2351                1u8,
2352                val as u64,
2353            )
2354        }
2355    }
2356    #[inline]
2357    pub fn debug_frozen_string_literal(&self) -> ::std::os::raw::c_uint {
2358        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
2359    }
2360    #[inline]
2361    pub fn set_debug_frozen_string_literal(&mut self, val: ::std::os::raw::c_uint) {
2362        unsafe {
2363            let val: u32 = ::std::mem::transmute(val);
2364            self._bitfield_1.set(8usize, 1u8, val as u64)
2365        }
2366    }
2367    #[inline]
2368    pub unsafe fn debug_frozen_string_literal_raw(this: *const Self) -> ::std::os::raw::c_uint {
2369        unsafe {
2370            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2371                ::std::ptr::addr_of!((*this)._bitfield_1),
2372                8usize,
2373                1u8,
2374            ) as u32)
2375        }
2376    }
2377    #[inline]
2378    pub unsafe fn set_debug_frozen_string_literal_raw(
2379        this: *mut Self,
2380        val: ::std::os::raw::c_uint,
2381    ) {
2382        unsafe {
2383            let val: u32 = ::std::mem::transmute(val);
2384            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2385                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2386                8usize,
2387                1u8,
2388                val as u64,
2389            )
2390        }
2391    }
2392    #[inline]
2393    pub fn coverage_enabled(&self) -> ::std::os::raw::c_uint {
2394        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
2395    }
2396    #[inline]
2397    pub fn set_coverage_enabled(&mut self, val: ::std::os::raw::c_uint) {
2398        unsafe {
2399            let val: u32 = ::std::mem::transmute(val);
2400            self._bitfield_1.set(9usize, 1u8, val as u64)
2401        }
2402    }
2403    #[inline]
2404    pub unsafe fn coverage_enabled_raw(this: *const Self) -> ::std::os::raw::c_uint {
2405        unsafe {
2406            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2407                ::std::ptr::addr_of!((*this)._bitfield_1),
2408                9usize,
2409                1u8,
2410            ) as u32)
2411        }
2412    }
2413    #[inline]
2414    pub unsafe fn set_coverage_enabled_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2415        unsafe {
2416            let val: u32 = ::std::mem::transmute(val);
2417            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2418                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2419                9usize,
2420                1u8,
2421                val as u64,
2422            )
2423        }
2424    }
2425    #[inline]
2426    pub fn new_bitfield_1(
2427        inline_const_cache: ::std::os::raw::c_uint,
2428        peephole_optimization: ::std::os::raw::c_uint,
2429        tailcall_optimization: ::std::os::raw::c_uint,
2430        specialized_instruction: ::std::os::raw::c_uint,
2431        operands_unification: ::std::os::raw::c_uint,
2432        instructions_unification: ::std::os::raw::c_uint,
2433        stack_caching: ::std::os::raw::c_uint,
2434        frozen_string_literal: ::std::os::raw::c_uint,
2435        debug_frozen_string_literal: ::std::os::raw::c_uint,
2436        coverage_enabled: ::std::os::raw::c_uint,
2437    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
2438        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
2439        __bindgen_bitfield_unit.set(0usize, 1u8, {
2440            let inline_const_cache: u32 = unsafe { ::std::mem::transmute(inline_const_cache) };
2441            inline_const_cache as u64
2442        });
2443        __bindgen_bitfield_unit.set(1usize, 1u8, {
2444            let peephole_optimization: u32 =
2445                unsafe { ::std::mem::transmute(peephole_optimization) };
2446            peephole_optimization as u64
2447        });
2448        __bindgen_bitfield_unit.set(2usize, 1u8, {
2449            let tailcall_optimization: u32 =
2450                unsafe { ::std::mem::transmute(tailcall_optimization) };
2451            tailcall_optimization as u64
2452        });
2453        __bindgen_bitfield_unit.set(3usize, 1u8, {
2454            let specialized_instruction: u32 =
2455                unsafe { ::std::mem::transmute(specialized_instruction) };
2456            specialized_instruction as u64
2457        });
2458        __bindgen_bitfield_unit.set(4usize, 1u8, {
2459            let operands_unification: u32 = unsafe { ::std::mem::transmute(operands_unification) };
2460            operands_unification as u64
2461        });
2462        __bindgen_bitfield_unit.set(5usize, 1u8, {
2463            let instructions_unification: u32 =
2464                unsafe { ::std::mem::transmute(instructions_unification) };
2465            instructions_unification as u64
2466        });
2467        __bindgen_bitfield_unit.set(6usize, 1u8, {
2468            let stack_caching: u32 = unsafe { ::std::mem::transmute(stack_caching) };
2469            stack_caching as u64
2470        });
2471        __bindgen_bitfield_unit.set(7usize, 1u8, {
2472            let frozen_string_literal: u32 =
2473                unsafe { ::std::mem::transmute(frozen_string_literal) };
2474            frozen_string_literal as u64
2475        });
2476        __bindgen_bitfield_unit.set(8usize, 1u8, {
2477            let debug_frozen_string_literal: u32 =
2478                unsafe { ::std::mem::transmute(debug_frozen_string_literal) };
2479            debug_frozen_string_literal as u64
2480        });
2481        __bindgen_bitfield_unit.set(9usize, 1u8, {
2482            let coverage_enabled: u32 = unsafe { ::std::mem::transmute(coverage_enabled) };
2483            coverage_enabled as u64
2484        });
2485        __bindgen_bitfield_unit
2486    }
2487}
2488#[repr(C)]
2489#[derive(Debug, Copy, Clone)]
2490pub struct iseq_insn_info_entry {
2491    pub position: ::std::os::raw::c_uint,
2492    pub line_no: ::std::os::raw::c_int,
2493    pub events: rb_event_flag_t,
2494}
2495#[repr(C)]
2496#[derive(Debug, Copy, Clone)]
2497pub struct iseq_catch_table_entry {
2498    pub type_: iseq_catch_table_entry_catch_type,
2499    pub iseq: *const rb_iseq_t,
2500    pub start: ::std::os::raw::c_uint,
2501    pub end: ::std::os::raw::c_uint,
2502    pub cont: ::std::os::raw::c_uint,
2503    pub sp: ::std::os::raw::c_uint,
2504}
2505pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RESCUE: iseq_catch_table_entry_catch_type =
2506    3;
2507pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_ENSURE: iseq_catch_table_entry_catch_type =
2508    5;
2509pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RETRY: iseq_catch_table_entry_catch_type = 7;
2510pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_BREAK: iseq_catch_table_entry_catch_type = 9;
2511pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_REDO: iseq_catch_table_entry_catch_type = 11;
2512pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_NEXT: iseq_catch_table_entry_catch_type = 13;
2513pub type iseq_catch_table_entry_catch_type = ::std::os::raw::c_uint;
2514#[repr(C, packed)]
2515#[derive(Copy, Clone)]
2516pub struct iseq_catch_table {
2517    pub size: ::std::os::raw::c_uint,
2518    pub entries: [iseq_catch_table_entry; 1usize],
2519}
2520#[repr(C)]
2521#[derive(Debug, Copy, Clone)]
2522pub struct iseq_compile_data_storage {
2523    pub next: *mut iseq_compile_data_storage,
2524    pub pos: ::std::os::raw::c_uint,
2525    pub size: ::std::os::raw::c_uint,
2526    pub buff: [::std::os::raw::c_char; 1usize],
2527}
2528#[repr(C)]
2529#[derive(Debug, Copy, Clone)]
2530pub struct rb_id_table {
2531    pub _address: u8,
2532}
2533#[repr(C)]
2534#[derive(Debug, Copy, Clone)]
2535pub struct rb_event_hook_struct {
2536    pub _address: u8,
2537}
2538#[repr(C)]
2539#[derive(Debug, Copy, Clone)]
2540pub struct rb_postponed_job_struct {
2541    pub _address: u8,
2542}
2543#[repr(C)]
2544#[derive(Debug, Copy, Clone)]
2545pub struct iseq_label_data {
2546    pub _address: u8,
2547}
2548#[repr(C)]
2549#[derive(Debug, Copy, Clone)]
2550pub struct iseq_compile_data_ensure_node_stack {
2551    pub _address: u8,
2552}