rbspy_ruby_structs/
ruby_2_6_0.rs

1/* automatically generated by rust-bindgen 0.71.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 = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
40        Self::extract_bit(byte, index)
41    }
42    #[inline]
43    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
44        let bit_index = if cfg!(target_endian = "big") {
45            7 - (index % 8)
46        } else {
47            index % 8
48        };
49        let mask = 1 << bit_index;
50        if val {
51            byte | mask
52        } else {
53            byte & !mask
54        }
55    }
56    #[inline]
57    pub fn set_bit(&mut self, index: usize, val: bool) {
58        debug_assert!(index / 8 < self.storage.as_ref().len());
59        let byte_index = index / 8;
60        let byte = &mut self.storage.as_mut()[byte_index];
61        *byte = Self::change_bit(*byte, index, val);
62    }
63    #[inline]
64    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
65        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
66        let byte_index = index / 8;
67        let byte =
68            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
69        *byte = Self::change_bit(*byte, index, val);
70    }
71    #[inline]
72    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
73        debug_assert!(bit_width <= 64);
74        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
75        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
76        let mut val = 0;
77        for i in 0..(bit_width as usize) {
78            if self.get_bit(i + bit_offset) {
79                let index = if cfg!(target_endian = "big") {
80                    bit_width as usize - 1 - i
81                } else {
82                    i
83                };
84                val |= 1 << index;
85            }
86        }
87        val
88    }
89    #[inline]
90    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
91        debug_assert!(bit_width <= 64);
92        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
93        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
94        let mut val = 0;
95        for i in 0..(bit_width as usize) {
96            if Self::raw_get_bit(this, i + bit_offset) {
97                let index = if cfg!(target_endian = "big") {
98                    bit_width as usize - 1 - i
99                } else {
100                    i
101                };
102                val |= 1 << index;
103            }
104        }
105        val
106    }
107    #[inline]
108    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
109        debug_assert!(bit_width <= 64);
110        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
111        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
112        for i in 0..(bit_width as usize) {
113            let mask = 1 << i;
114            let val_bit_is_set = val & mask == mask;
115            let index = if cfg!(target_endian = "big") {
116                bit_width as usize - 1 - i
117            } else {
118                i
119            };
120            self.set_bit(index + bit_offset, val_bit_is_set);
121        }
122    }
123    #[inline]
124    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
125        debug_assert!(bit_width <= 64);
126        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
127        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
128        for i in 0..(bit_width as usize) {
129            let mask = 1 << i;
130            let val_bit_is_set = val & mask == mask;
131            let index = if cfg!(target_endian = "big") {
132                bit_width as usize - 1 - i
133            } else {
134                i
135            };
136            Self::raw_set_bit(this, index + bit_offset, val_bit_is_set);
137        }
138    }
139}
140#[repr(C)]
141#[derive(Default)]
142pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
143impl<T> __IncompleteArrayField<T> {
144    #[inline]
145    pub const fn new() -> Self {
146        __IncompleteArrayField(::std::marker::PhantomData, [])
147    }
148    #[inline]
149    pub fn as_ptr(&self) -> *const T {
150        self as *const _ as *const T
151    }
152    #[inline]
153    pub fn as_mut_ptr(&mut self) -> *mut T {
154        self as *mut _ as *mut T
155    }
156    #[inline]
157    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
158        ::std::slice::from_raw_parts(self.as_ptr(), len)
159    }
160    #[inline]
161    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
162        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
163    }
164}
165impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
166    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
167        fmt.write_str("__IncompleteArrayField")
168    }
169}
170#[repr(C)]
171#[derive(Debug, Copy, Clone)]
172pub struct __sigset_t {
173    pub __val: [usize; 16usize],
174}
175#[repr(C)]
176#[derive(Debug, Copy, Clone)]
177pub struct __pthread_internal_list {
178    pub __prev: *mut __pthread_internal_list,
179    pub __next: *mut __pthread_internal_list,
180}
181pub type __pthread_list_t = __pthread_internal_list;
182#[repr(C)]
183#[derive(Debug, Copy, Clone)]
184pub struct __pthread_mutex_s {
185    pub __lock: ::std::os::raw::c_int,
186    pub __count: ::std::os::raw::c_uint,
187    pub __owner: ::std::os::raw::c_int,
188    pub __nusers: ::std::os::raw::c_uint,
189    pub __kind: ::std::os::raw::c_int,
190    pub __spins: ::std::os::raw::c_short,
191    pub __elision: ::std::os::raw::c_short,
192    pub __list: __pthread_list_t,
193}
194#[repr(C)]
195#[derive(Copy, Clone)]
196pub struct __pthread_cond_s {
197    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
198    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
199    pub __g_refs: [::std::os::raw::c_uint; 2usize],
200    pub __g_size: [::std::os::raw::c_uint; 2usize],
201    pub __g1_orig_size: ::std::os::raw::c_uint,
202    pub __wrefs: ::std::os::raw::c_uint,
203    pub __g_signals: [::std::os::raw::c_uint; 2usize],
204}
205#[repr(C)]
206#[derive(Copy, Clone)]
207pub union __pthread_cond_s__bindgen_ty_1 {
208    pub __wseq: ::std::os::raw::c_ulonglong,
209    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
210}
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
214    pub __low: ::std::os::raw::c_uint,
215    pub __high: ::std::os::raw::c_uint,
216}
217impl ::std::fmt::Debug for __pthread_cond_s__bindgen_ty_1 {
218    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
219        write!(f, "__pthread_cond_s__bindgen_ty_1 {{ union }}")
220    }
221}
222#[repr(C)]
223#[derive(Copy, Clone)]
224pub union __pthread_cond_s__bindgen_ty_2 {
225    pub __g1_start: ::std::os::raw::c_ulonglong,
226    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
227}
228#[repr(C)]
229#[derive(Debug, Copy, Clone)]
230pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
231    pub __low: ::std::os::raw::c_uint,
232    pub __high: ::std::os::raw::c_uint,
233}
234impl ::std::fmt::Debug for __pthread_cond_s__bindgen_ty_2 {
235    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
236        write!(f, "__pthread_cond_s__bindgen_ty_2 {{ union }}")
237    }
238}
239impl ::std::fmt::Debug for __pthread_cond_s {
240    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
241        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)
242    }
243}
244pub type pthread_t = usize;
245#[repr(C)]
246#[derive(Copy, Clone)]
247pub union pthread_mutex_t {
248    pub __data: __pthread_mutex_s,
249    pub __size: [::std::os::raw::c_char; 40usize],
250    pub __align: ::std::os::raw::c_long,
251}
252impl ::std::fmt::Debug for pthread_mutex_t {
253    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
254        write!(f, "pthread_mutex_t {{ union }}")
255    }
256}
257#[repr(C)]
258#[derive(Copy, Clone)]
259pub union pthread_cond_t {
260    pub __data: __pthread_cond_s,
261    pub __size: [::std::os::raw::c_char; 48usize],
262    pub __align: ::std::os::raw::c_longlong,
263}
264impl ::std::fmt::Debug for pthread_cond_t {
265    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
266        write!(f, "pthread_cond_t {{ union }}")
267    }
268}
269pub type VALUE = usize;
270pub type ID = usize;
271pub const ruby_fl_type_RUBY_FL_WB_PROTECTED: ruby_fl_type = 32;
272pub const ruby_fl_type_RUBY_FL_PROMOTED0: ruby_fl_type = 32;
273pub const ruby_fl_type_RUBY_FL_PROMOTED1: ruby_fl_type = 64;
274pub const ruby_fl_type_RUBY_FL_PROMOTED: ruby_fl_type = 96;
275pub const ruby_fl_type_RUBY_FL_FINALIZE: ruby_fl_type = 128;
276pub const ruby_fl_type_RUBY_FL_TAINT: ruby_fl_type = 256;
277pub const ruby_fl_type_RUBY_FL_UNTRUSTED: ruby_fl_type = 256;
278pub const ruby_fl_type_RUBY_FL_EXIVAR: ruby_fl_type = 1024;
279pub const ruby_fl_type_RUBY_FL_FREEZE: ruby_fl_type = 2048;
280pub const ruby_fl_type_RUBY_FL_USHIFT: ruby_fl_type = 12;
281pub const ruby_fl_type_RUBY_FL_USER0: ruby_fl_type = 4096;
282pub const ruby_fl_type_RUBY_FL_USER1: ruby_fl_type = 8192;
283pub const ruby_fl_type_RUBY_FL_USER2: ruby_fl_type = 16384;
284pub const ruby_fl_type_RUBY_FL_USER3: ruby_fl_type = 32768;
285pub const ruby_fl_type_RUBY_FL_USER4: ruby_fl_type = 65536;
286pub const ruby_fl_type_RUBY_FL_USER5: ruby_fl_type = 131072;
287pub const ruby_fl_type_RUBY_FL_USER6: ruby_fl_type = 262144;
288pub const ruby_fl_type_RUBY_FL_USER7: ruby_fl_type = 524288;
289pub const ruby_fl_type_RUBY_FL_USER8: ruby_fl_type = 1048576;
290pub const ruby_fl_type_RUBY_FL_USER9: ruby_fl_type = 2097152;
291pub const ruby_fl_type_RUBY_FL_USER10: ruby_fl_type = 4194304;
292pub const ruby_fl_type_RUBY_FL_USER11: ruby_fl_type = 8388608;
293pub const ruby_fl_type_RUBY_FL_USER12: ruby_fl_type = 16777216;
294pub const ruby_fl_type_RUBY_FL_USER13: ruby_fl_type = 33554432;
295pub const ruby_fl_type_RUBY_FL_USER14: ruby_fl_type = 67108864;
296pub const ruby_fl_type_RUBY_FL_USER15: ruby_fl_type = 134217728;
297pub const ruby_fl_type_RUBY_FL_USER16: ruby_fl_type = 268435456;
298pub const ruby_fl_type_RUBY_FL_USER17: ruby_fl_type = 536870912;
299pub const ruby_fl_type_RUBY_FL_USER18: ruby_fl_type = 1073741824;
300pub const ruby_fl_type_RUBY_FL_USER19: ruby_fl_type = -2147483648;
301pub const ruby_fl_type_RUBY_ELTS_SHARED: ruby_fl_type = 16384;
302pub const ruby_fl_type_RUBY_FL_DUPPED: ruby_fl_type = 1311;
303pub const ruby_fl_type_RUBY_FL_SINGLETON: ruby_fl_type = 4096;
304pub type ruby_fl_type = ::std::os::raw::c_int;
305#[repr(C)]
306#[derive(Debug, Copy, Clone)]
307pub struct RBasic {
308    pub flags: VALUE,
309    pub klass: VALUE,
310}
311#[repr(C)]
312#[derive(Copy, Clone)]
313pub struct RString {
314    pub basic: RBasic,
315    pub as_: RString__bindgen_ty_1,
316}
317#[repr(C)]
318#[derive(Copy, Clone)]
319pub union RString__bindgen_ty_1 {
320    pub heap: RString__bindgen_ty_1__bindgen_ty_1,
321    pub ary: [::std::os::raw::c_char; 24usize],
322}
323#[repr(C)]
324#[derive(Copy, Clone)]
325pub struct RString__bindgen_ty_1__bindgen_ty_1 {
326    pub len: ::std::os::raw::c_long,
327    pub ptr: *mut ::std::os::raw::c_char,
328    pub aux: RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
329}
330#[repr(C)]
331#[derive(Copy, Clone)]
332pub union RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
333    pub capa: ::std::os::raw::c_long,
334    pub shared: VALUE,
335}
336impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
337    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
338        write!(
339            f,
340            "RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
341        )
342    }
343}
344impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1 {
345    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
346        write!(
347            f,
348            "RString__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, ptr: {:?}, aux: {:?} }}",
349            self.len, self.ptr, self.aux
350        )
351    }
352}
353impl ::std::fmt::Debug for RString__bindgen_ty_1 {
354    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
355        write!(f, "RString__bindgen_ty_1 {{ union }}")
356    }
357}
358impl ::std::fmt::Debug for RString {
359    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
360        write!(
361            f,
362            "RString {{ basic: {:?}, as: {:?} }}",
363            self.basic, self.as_
364        )
365    }
366}
367#[repr(C)]
368#[derive(Copy, Clone)]
369pub struct RArray {
370    pub basic: RBasic,
371    pub as_: RArray__bindgen_ty_1,
372}
373#[repr(C)]
374#[derive(Copy, Clone)]
375pub union RArray__bindgen_ty_1 {
376    pub heap: RArray__bindgen_ty_1__bindgen_ty_1,
377    pub ary: [VALUE; 3usize],
378}
379#[repr(C)]
380#[derive(Copy, Clone)]
381pub struct RArray__bindgen_ty_1__bindgen_ty_1 {
382    pub len: ::std::os::raw::c_long,
383    pub aux: RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
384    pub ptr: *const VALUE,
385}
386#[repr(C)]
387#[derive(Copy, Clone)]
388pub union RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
389    pub capa: ::std::os::raw::c_long,
390    pub shared: VALUE,
391}
392impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
393    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
394        write!(
395            f,
396            "RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
397        )
398    }
399}
400impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1 {
401    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
402        write!(
403            f,
404            "RArray__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, aux: {:?}, ptr: {:?} }}",
405            self.len, self.aux, self.ptr
406        )
407    }
408}
409impl ::std::fmt::Debug for RArray__bindgen_ty_1 {
410    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
411        write!(f, "RArray__bindgen_ty_1 {{ union }}")
412    }
413}
414impl ::std::fmt::Debug for RArray {
415    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
416        write!(
417            f,
418            "RArray {{ basic: {:?}, as: {:?} }}",
419            self.basic, self.as_
420        )
421    }
422}
423pub type st_data_t = usize;
424pub type st_index_t = st_data_t;
425#[repr(C)]
426#[derive(Debug, Copy, Clone)]
427pub struct st_hash_type {
428    pub compare: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
429    pub hash: ::std::option::Option<unsafe extern "C" fn() -> st_index_t>,
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct st_table_entry {
434    _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct st_table {
439    pub entry_power: ::std::os::raw::c_uchar,
440    pub bin_power: ::std::os::raw::c_uchar,
441    pub size_ind: ::std::os::raw::c_uchar,
442    pub rebuilds_num: ::std::os::raw::c_uint,
443    pub type_: *const st_hash_type,
444    pub num_entries: st_index_t,
445    pub bins: *mut st_index_t,
446    pub entries_start: st_index_t,
447    pub entries_bound: st_index_t,
448    pub entries: *mut st_table_entry,
449}
450pub type rb_unblock_function_t =
451    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
452pub type rb_event_flag_t = u32;
453#[repr(C)]
454#[derive(Debug, Copy, Clone)]
455pub struct rb_code_position_struct {
456    pub lineno: ::std::os::raw::c_int,
457    pub column: ::std::os::raw::c_int,
458}
459pub type rb_code_position_t = rb_code_position_struct;
460#[repr(C)]
461#[derive(Debug, Copy, Clone)]
462pub struct rb_code_location_struct {
463    pub beg_pos: rb_code_position_t,
464    pub end_pos: rb_code_position_t,
465}
466pub type rb_code_location_t = rb_code_location_struct;
467pub const ruby_id_types_RUBY_ID_STATIC_SYM: ruby_id_types = 1;
468pub const ruby_id_types_RUBY_ID_LOCAL: ruby_id_types = 0;
469pub const ruby_id_types_RUBY_ID_INSTANCE: ruby_id_types = 2;
470pub const ruby_id_types_RUBY_ID_GLOBAL: ruby_id_types = 6;
471pub const ruby_id_types_RUBY_ID_ATTRSET: ruby_id_types = 8;
472pub const ruby_id_types_RUBY_ID_CONST: ruby_id_types = 10;
473pub const ruby_id_types_RUBY_ID_CLASS: ruby_id_types = 12;
474pub const ruby_id_types_RUBY_ID_JUNK: ruby_id_types = 14;
475pub const ruby_id_types_RUBY_ID_INTERNAL: ruby_id_types = 14;
476pub const ruby_id_types_RUBY_ID_SCOPE_SHIFT: ruby_id_types = 4;
477pub const ruby_id_types_RUBY_ID_SCOPE_MASK: ruby_id_types = 14;
478pub type ruby_id_types = ::std::os::raw::c_uint;
479pub const ruby_method_ids_idDot2: ruby_method_ids = 128;
480pub const ruby_method_ids_idDot3: ruby_method_ids = 129;
481pub const ruby_method_ids_idUPlus: ruby_method_ids = 130;
482pub const ruby_method_ids_idUMinus: ruby_method_ids = 131;
483pub const ruby_method_ids_idPow: ruby_method_ids = 132;
484pub const ruby_method_ids_idCmp: ruby_method_ids = 133;
485pub const ruby_method_ids_idPLUS: ruby_method_ids = 43;
486pub const ruby_method_ids_idMINUS: ruby_method_ids = 45;
487pub const ruby_method_ids_idMULT: ruby_method_ids = 42;
488pub const ruby_method_ids_idDIV: ruby_method_ids = 47;
489pub const ruby_method_ids_idMOD: ruby_method_ids = 37;
490pub const ruby_method_ids_idLTLT: ruby_method_ids = 134;
491pub const ruby_method_ids_idGTGT: ruby_method_ids = 135;
492pub const ruby_method_ids_idLT: ruby_method_ids = 60;
493pub const ruby_method_ids_idLE: ruby_method_ids = 136;
494pub const ruby_method_ids_idGT: ruby_method_ids = 62;
495pub const ruby_method_ids_idGE: ruby_method_ids = 137;
496pub const ruby_method_ids_idEq: ruby_method_ids = 138;
497pub const ruby_method_ids_idEqq: ruby_method_ids = 139;
498pub const ruby_method_ids_idNeq: ruby_method_ids = 140;
499pub const ruby_method_ids_idNot: ruby_method_ids = 33;
500pub const ruby_method_ids_idAnd: ruby_method_ids = 38;
501pub const ruby_method_ids_idOr: ruby_method_ids = 124;
502pub const ruby_method_ids_idBackquote: ruby_method_ids = 96;
503pub const ruby_method_ids_idEqTilde: ruby_method_ids = 141;
504pub const ruby_method_ids_idNeqTilde: ruby_method_ids = 142;
505pub const ruby_method_ids_idAREF: ruby_method_ids = 143;
506pub const ruby_method_ids_idASET: ruby_method_ids = 144;
507pub const ruby_method_ids_idCOLON2: ruby_method_ids = 145;
508pub const ruby_method_ids_idANDOP: ruby_method_ids = 146;
509pub const ruby_method_ids_idOROP: ruby_method_ids = 147;
510pub const ruby_method_ids_idANDDOT: ruby_method_ids = 148;
511pub const ruby_method_ids_tPRESERVED_ID_BEGIN: ruby_method_ids = 148;
512pub const ruby_method_ids_idNULL: ruby_method_ids = 149;
513pub const ruby_method_ids_idEmptyP: ruby_method_ids = 150;
514pub const ruby_method_ids_idEqlP: ruby_method_ids = 151;
515pub const ruby_method_ids_idRespond_to: ruby_method_ids = 152;
516pub const ruby_method_ids_idRespond_to_missing: ruby_method_ids = 153;
517pub const ruby_method_ids_idIFUNC: ruby_method_ids = 154;
518pub const ruby_method_ids_idCFUNC: ruby_method_ids = 155;
519pub const ruby_method_ids_id_core_set_method_alias: ruby_method_ids = 156;
520pub const ruby_method_ids_id_core_set_variable_alias: ruby_method_ids = 157;
521pub const ruby_method_ids_id_core_undef_method: ruby_method_ids = 158;
522pub const ruby_method_ids_id_core_define_method: ruby_method_ids = 159;
523pub const ruby_method_ids_id_core_define_singleton_method: ruby_method_ids = 160;
524pub const ruby_method_ids_id_core_set_postexe: ruby_method_ids = 161;
525pub const ruby_method_ids_id_core_hash_merge_ptr: ruby_method_ids = 162;
526pub const ruby_method_ids_id_core_hash_merge_kwd: ruby_method_ids = 163;
527pub const ruby_method_ids_id_debug_created_info: ruby_method_ids = 164;
528pub const ruby_method_ids_tPRESERVED_ID_END: ruby_method_ids = 165;
529pub const ruby_method_ids_tTOKEN_LOCAL_BEGIN: ruby_method_ids = 164;
530pub const ruby_method_ids_tMax: ruby_method_ids = 165;
531pub const ruby_method_ids_tMin: ruby_method_ids = 166;
532pub const ruby_method_ids_tFreeze: ruby_method_ids = 167;
533pub const ruby_method_ids_tInspect: ruby_method_ids = 168;
534pub const ruby_method_ids_tIntern: ruby_method_ids = 169;
535pub const ruby_method_ids_tObject_id: ruby_method_ids = 170;
536pub const ruby_method_ids_tConst_missing: ruby_method_ids = 171;
537pub const ruby_method_ids_tMethodMissing: ruby_method_ids = 172;
538pub const ruby_method_ids_tMethod_added: ruby_method_ids = 173;
539pub const ruby_method_ids_tSingleton_method_added: ruby_method_ids = 174;
540pub const ruby_method_ids_tMethod_removed: ruby_method_ids = 175;
541pub const ruby_method_ids_tSingleton_method_removed: ruby_method_ids = 176;
542pub const ruby_method_ids_tMethod_undefined: ruby_method_ids = 177;
543pub const ruby_method_ids_tSingleton_method_undefined: ruby_method_ids = 178;
544pub const ruby_method_ids_tLength: ruby_method_ids = 179;
545pub const ruby_method_ids_tSize: ruby_method_ids = 180;
546pub const ruby_method_ids_tGets: ruby_method_ids = 181;
547pub const ruby_method_ids_tSucc: ruby_method_ids = 182;
548pub const ruby_method_ids_tEach: ruby_method_ids = 183;
549pub const ruby_method_ids_tProc: ruby_method_ids = 184;
550pub const ruby_method_ids_tLambda: ruby_method_ids = 185;
551pub const ruby_method_ids_tSend: ruby_method_ids = 186;
552pub const ruby_method_ids_t__send__: ruby_method_ids = 187;
553pub const ruby_method_ids_t__attached__: ruby_method_ids = 188;
554pub const ruby_method_ids_tInitialize: ruby_method_ids = 189;
555pub const ruby_method_ids_tInitialize_copy: ruby_method_ids = 190;
556pub const ruby_method_ids_tInitialize_clone: ruby_method_ids = 191;
557pub const ruby_method_ids_tInitialize_dup: ruby_method_ids = 192;
558pub const ruby_method_ids_tTo_int: ruby_method_ids = 193;
559pub const ruby_method_ids_tTo_ary: ruby_method_ids = 194;
560pub const ruby_method_ids_tTo_str: ruby_method_ids = 195;
561pub const ruby_method_ids_tTo_sym: ruby_method_ids = 196;
562pub const ruby_method_ids_tTo_hash: ruby_method_ids = 197;
563pub const ruby_method_ids_tTo_proc: ruby_method_ids = 198;
564pub const ruby_method_ids_tTo_io: ruby_method_ids = 199;
565pub const ruby_method_ids_tTo_a: ruby_method_ids = 200;
566pub const ruby_method_ids_tTo_s: ruby_method_ids = 201;
567pub const ruby_method_ids_tTo_i: ruby_method_ids = 202;
568pub const ruby_method_ids_tTo_f: ruby_method_ids = 203;
569pub const ruby_method_ids_tTo_r: ruby_method_ids = 204;
570pub const ruby_method_ids_tBt: ruby_method_ids = 205;
571pub const ruby_method_ids_tBt_locations: ruby_method_ids = 206;
572pub const ruby_method_ids_tCall: ruby_method_ids = 207;
573pub const ruby_method_ids_tMesg: ruby_method_ids = 208;
574pub const ruby_method_ids_tException: ruby_method_ids = 209;
575pub const ruby_method_ids_tNOT: ruby_method_ids = 210;
576pub const ruby_method_ids_tAND: ruby_method_ids = 211;
577pub const ruby_method_ids_tOR: ruby_method_ids = 212;
578pub const ruby_method_ids_tUScore: ruby_method_ids = 213;
579pub const ruby_method_ids_tTOKEN_LOCAL_END: ruby_method_ids = 214;
580pub const ruby_method_ids_tTOKEN_INSTANCE_BEGIN: ruby_method_ids = 213;
581pub const ruby_method_ids_tTOKEN_INSTANCE_END: ruby_method_ids = 214;
582pub const ruby_method_ids_tTOKEN_GLOBAL_BEGIN: ruby_method_ids = 213;
583pub const ruby_method_ids_tLASTLINE: ruby_method_ids = 214;
584pub const ruby_method_ids_tBACKREF: ruby_method_ids = 215;
585pub const ruby_method_ids_tTOKEN_GLOBAL_END: ruby_method_ids = 216;
586pub const ruby_method_ids_tTOKEN_CONST_BEGIN: ruby_method_ids = 215;
587pub const ruby_method_ids_tTOKEN_CONST_END: ruby_method_ids = 216;
588pub const ruby_method_ids_tTOKEN_CLASS_BEGIN: ruby_method_ids = 215;
589pub const ruby_method_ids_tTOKEN_CLASS_END: ruby_method_ids = 216;
590pub const ruby_method_ids_tTOKEN_ATTRSET_BEGIN: ruby_method_ids = 215;
591pub const ruby_method_ids_tTOKEN_ATTRSET_END: ruby_method_ids = 216;
592pub const ruby_method_ids_tNEXT_ID: ruby_method_ids = 216;
593pub const ruby_method_ids_idMax: ruby_method_ids = 2641;
594pub const ruby_method_ids_idMin: ruby_method_ids = 2657;
595pub const ruby_method_ids_idFreeze: ruby_method_ids = 2673;
596pub const ruby_method_ids_idInspect: ruby_method_ids = 2689;
597pub const ruby_method_ids_idIntern: ruby_method_ids = 2705;
598pub const ruby_method_ids_idObject_id: ruby_method_ids = 2721;
599pub const ruby_method_ids_idConst_missing: ruby_method_ids = 2737;
600pub const ruby_method_ids_idMethodMissing: ruby_method_ids = 2753;
601pub const ruby_method_ids_idMethod_added: ruby_method_ids = 2769;
602pub const ruby_method_ids_idSingleton_method_added: ruby_method_ids = 2785;
603pub const ruby_method_ids_idMethod_removed: ruby_method_ids = 2801;
604pub const ruby_method_ids_idSingleton_method_removed: ruby_method_ids = 2817;
605pub const ruby_method_ids_idMethod_undefined: ruby_method_ids = 2833;
606pub const ruby_method_ids_idSingleton_method_undefined: ruby_method_ids = 2849;
607pub const ruby_method_ids_idLength: ruby_method_ids = 2865;
608pub const ruby_method_ids_idSize: ruby_method_ids = 2881;
609pub const ruby_method_ids_idGets: ruby_method_ids = 2897;
610pub const ruby_method_ids_idSucc: ruby_method_ids = 2913;
611pub const ruby_method_ids_idEach: ruby_method_ids = 2929;
612pub const ruby_method_ids_idProc: ruby_method_ids = 2945;
613pub const ruby_method_ids_idLambda: ruby_method_ids = 2961;
614pub const ruby_method_ids_idSend: ruby_method_ids = 2977;
615pub const ruby_method_ids_id__send__: ruby_method_ids = 2993;
616pub const ruby_method_ids_id__attached__: ruby_method_ids = 3009;
617pub const ruby_method_ids_idInitialize: ruby_method_ids = 3025;
618pub const ruby_method_ids_idInitialize_copy: ruby_method_ids = 3041;
619pub const ruby_method_ids_idInitialize_clone: ruby_method_ids = 3057;
620pub const ruby_method_ids_idInitialize_dup: ruby_method_ids = 3073;
621pub const ruby_method_ids_idTo_int: ruby_method_ids = 3089;
622pub const ruby_method_ids_idTo_ary: ruby_method_ids = 3105;
623pub const ruby_method_ids_idTo_str: ruby_method_ids = 3121;
624pub const ruby_method_ids_idTo_sym: ruby_method_ids = 3137;
625pub const ruby_method_ids_idTo_hash: ruby_method_ids = 3153;
626pub const ruby_method_ids_idTo_proc: ruby_method_ids = 3169;
627pub const ruby_method_ids_idTo_io: ruby_method_ids = 3185;
628pub const ruby_method_ids_idTo_a: ruby_method_ids = 3201;
629pub const ruby_method_ids_idTo_s: ruby_method_ids = 3217;
630pub const ruby_method_ids_idTo_i: ruby_method_ids = 3233;
631pub const ruby_method_ids_idTo_f: ruby_method_ids = 3249;
632pub const ruby_method_ids_idTo_r: ruby_method_ids = 3265;
633pub const ruby_method_ids_idBt: ruby_method_ids = 3281;
634pub const ruby_method_ids_idBt_locations: ruby_method_ids = 3297;
635pub const ruby_method_ids_idCall: ruby_method_ids = 3313;
636pub const ruby_method_ids_idMesg: ruby_method_ids = 3329;
637pub const ruby_method_ids_idException: ruby_method_ids = 3345;
638pub const ruby_method_ids_idNOT: ruby_method_ids = 3361;
639pub const ruby_method_ids_idAND: ruby_method_ids = 3377;
640pub const ruby_method_ids_idOR: ruby_method_ids = 3393;
641pub const ruby_method_ids_idUScore: ruby_method_ids = 3409;
642pub const ruby_method_ids_idLASTLINE: ruby_method_ids = 3431;
643pub const ruby_method_ids_idBACKREF: ruby_method_ids = 3447;
644pub const ruby_method_ids_tLAST_OP_ID: ruby_method_ids = 164;
645pub const ruby_method_ids_idLAST_OP_ID: ruby_method_ids = 10;
646pub type ruby_method_ids = ::std::os::raw::c_uint;
647pub type rb_serial_t = ::std::os::raw::c_ulonglong;
648pub const imemo_type_imemo_env: imemo_type = 0;
649pub const imemo_type_imemo_cref: imemo_type = 1;
650pub const imemo_type_imemo_svar: imemo_type = 2;
651pub const imemo_type_imemo_throw_data: imemo_type = 3;
652pub const imemo_type_imemo_ifunc: imemo_type = 4;
653pub const imemo_type_imemo_memo: imemo_type = 5;
654pub const imemo_type_imemo_ment: imemo_type = 6;
655pub const imemo_type_imemo_iseq: imemo_type = 7;
656pub const imemo_type_imemo_tmpbuf: imemo_type = 8;
657pub const imemo_type_imemo_ast: imemo_type = 9;
658pub const imemo_type_imemo_parser_strterm: imemo_type = 10;
659pub type imemo_type = ::std::os::raw::c_uint;
660#[repr(C)]
661#[derive(Debug, Copy, Clone)]
662pub struct vm_svar {
663    pub flags: VALUE,
664    pub cref_or_me: VALUE,
665    pub lastline: VALUE,
666    pub backref: VALUE,
667    pub others: VALUE,
668}
669pub const rb_method_visibility_t_METHOD_VISI_UNDEF: rb_method_visibility_t = 0;
670pub const rb_method_visibility_t_METHOD_VISI_PUBLIC: rb_method_visibility_t = 1;
671pub const rb_method_visibility_t_METHOD_VISI_PRIVATE: rb_method_visibility_t = 2;
672pub const rb_method_visibility_t_METHOD_VISI_PROTECTED: rb_method_visibility_t = 3;
673pub const rb_method_visibility_t_METHOD_VISI_MASK: rb_method_visibility_t = 3;
674pub type rb_method_visibility_t = ::std::os::raw::c_uint;
675#[repr(C)]
676#[repr(align(4))]
677#[derive(Debug, Copy, Clone)]
678pub struct rb_scope_visi_struct {
679    pub _bitfield_align_1: [u8; 0],
680    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
681    pub __bindgen_padding_0: [u8; 3usize],
682}
683impl rb_scope_visi_struct {
684    #[inline]
685    pub fn method_visi(&self) -> rb_method_visibility_t {
686        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
687    }
688    #[inline]
689    pub fn set_method_visi(&mut self, val: rb_method_visibility_t) {
690        unsafe {
691            let val: u32 = ::std::mem::transmute(val);
692            self._bitfield_1.set(0usize, 3u8, val as u64)
693        }
694    }
695    #[inline]
696    pub unsafe fn method_visi_raw(this: *const Self) -> rb_method_visibility_t {
697        unsafe {
698            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
699                ::std::ptr::addr_of!((*this)._bitfield_1),
700                0usize,
701                3u8,
702            ) as u32)
703        }
704    }
705    #[inline]
706    pub unsafe fn set_method_visi_raw(this: *mut Self, val: rb_method_visibility_t) {
707        unsafe {
708            let val: u32 = ::std::mem::transmute(val);
709            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
710                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
711                0usize,
712                3u8,
713                val as u64,
714            )
715        }
716    }
717    #[inline]
718    pub fn module_func(&self) -> ::std::os::raw::c_uint {
719        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
720    }
721    #[inline]
722    pub fn set_module_func(&mut self, val: ::std::os::raw::c_uint) {
723        unsafe {
724            let val: u32 = ::std::mem::transmute(val);
725            self._bitfield_1.set(3usize, 1u8, val as u64)
726        }
727    }
728    #[inline]
729    pub unsafe fn module_func_raw(this: *const Self) -> ::std::os::raw::c_uint {
730        unsafe {
731            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
732                ::std::ptr::addr_of!((*this)._bitfield_1),
733                3usize,
734                1u8,
735            ) as u32)
736        }
737    }
738    #[inline]
739    pub unsafe fn set_module_func_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
740        unsafe {
741            let val: u32 = ::std::mem::transmute(val);
742            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
743                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
744                3usize,
745                1u8,
746                val as u64,
747            )
748        }
749    }
750    #[inline]
751    pub fn new_bitfield_1(
752        method_visi: rb_method_visibility_t,
753        module_func: ::std::os::raw::c_uint,
754    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
755        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
756        __bindgen_bitfield_unit.set(0usize, 3u8, {
757            let method_visi: u32 = unsafe { ::std::mem::transmute(method_visi) };
758            method_visi as u64
759        });
760        __bindgen_bitfield_unit.set(3usize, 1u8, {
761            let module_func: u32 = unsafe { ::std::mem::transmute(module_func) };
762            module_func as u64
763        });
764        __bindgen_bitfield_unit
765    }
766}
767pub type rb_scope_visibility_t = rb_scope_visi_struct;
768#[repr(C)]
769#[derive(Debug, Copy, Clone)]
770pub struct rb_cref_struct {
771    pub flags: VALUE,
772    pub refinements: VALUE,
773    pub klass: VALUE,
774    pub next: *mut rb_cref_struct,
775    pub scope_visi: rb_scope_visibility_t,
776}
777pub type rb_cref_t = rb_cref_struct;
778#[repr(C)]
779#[derive(Debug, Copy, Clone)]
780pub struct rb_method_entry_struct {
781    pub flags: VALUE,
782    pub defined_class: VALUE,
783    pub def: *mut rb_method_definition_struct,
784    pub called_id: ID,
785    pub owner: VALUE,
786}
787#[repr(C)]
788#[derive(Debug, Copy, Clone)]
789pub struct rb_callable_method_entry_struct {
790    pub flags: VALUE,
791    pub defined_class: VALUE,
792    pub def: *mut rb_method_definition_struct,
793    pub called_id: ID,
794    pub owner: VALUE,
795}
796pub type rb_callable_method_entry_t = rb_callable_method_entry_struct;
797pub const rb_method_type_t_VM_METHOD_TYPE_ISEQ: rb_method_type_t = 0;
798pub const rb_method_type_t_VM_METHOD_TYPE_CFUNC: rb_method_type_t = 1;
799pub const rb_method_type_t_VM_METHOD_TYPE_ATTRSET: rb_method_type_t = 2;
800pub const rb_method_type_t_VM_METHOD_TYPE_IVAR: rb_method_type_t = 3;
801pub const rb_method_type_t_VM_METHOD_TYPE_BMETHOD: rb_method_type_t = 4;
802pub const rb_method_type_t_VM_METHOD_TYPE_ZSUPER: rb_method_type_t = 5;
803pub const rb_method_type_t_VM_METHOD_TYPE_ALIAS: rb_method_type_t = 6;
804pub const rb_method_type_t_VM_METHOD_TYPE_UNDEF: rb_method_type_t = 7;
805pub const rb_method_type_t_VM_METHOD_TYPE_NOTIMPLEMENTED: rb_method_type_t = 8;
806pub const rb_method_type_t_VM_METHOD_TYPE_OPTIMIZED: rb_method_type_t = 9;
807pub const rb_method_type_t_VM_METHOD_TYPE_MISSING: rb_method_type_t = 10;
808pub const rb_method_type_t_VM_METHOD_TYPE_REFINED: rb_method_type_t = 11;
809pub type rb_method_type_t = ::std::os::raw::c_uint;
810pub type rb_iseq_t = rb_iseq_struct;
811#[repr(C)]
812#[derive(Debug, Copy, Clone)]
813pub struct rb_method_iseq_struct {
814    pub iseqptr: *const rb_iseq_t,
815    pub cref: *mut rb_cref_t,
816}
817pub type rb_method_iseq_t = rb_method_iseq_struct;
818#[repr(C)]
819#[derive(Debug, Copy, Clone)]
820pub struct rb_method_cfunc_struct {
821    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
822    pub invoker: ::std::option::Option<
823        unsafe extern "C" fn(
824            func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
825            recv: VALUE,
826            argc: ::std::os::raw::c_int,
827            argv: *const VALUE,
828        ) -> VALUE,
829    >,
830    pub argc: ::std::os::raw::c_int,
831}
832pub type rb_method_cfunc_t = rb_method_cfunc_struct;
833#[repr(C)]
834#[derive(Debug, Copy, Clone)]
835pub struct rb_method_attr_struct {
836    pub id: ID,
837    pub location: VALUE,
838}
839pub type rb_method_attr_t = rb_method_attr_struct;
840#[repr(C)]
841#[derive(Debug, Copy, Clone)]
842pub struct rb_method_alias_struct {
843    pub original_me: *const rb_method_entry_struct,
844}
845pub type rb_method_alias_t = rb_method_alias_struct;
846#[repr(C)]
847#[derive(Debug, Copy, Clone)]
848pub struct rb_method_refined_struct {
849    pub orig_me: *const rb_method_entry_struct,
850    pub owner: VALUE,
851}
852pub type rb_method_refined_t = rb_method_refined_struct;
853#[repr(C)]
854#[derive(Debug, Copy, Clone)]
855pub struct rb_method_bmethod_struct {
856    pub proc_: VALUE,
857    pub hooks: *mut rb_hook_list_struct,
858}
859pub type rb_method_bmethod_t = rb_method_bmethod_struct;
860pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_SEND: method_optimized_type = 0;
861pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_CALL: method_optimized_type = 1;
862pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_BLOCK_CALL: method_optimized_type = 2;
863pub const method_optimized_type_OPTIMIZED_METHOD_TYPE__MAX: method_optimized_type = 3;
864pub type method_optimized_type = ::std::os::raw::c_uint;
865#[repr(C, packed)]
866#[derive(Copy, Clone)]
867pub struct rb_method_definition_struct {
868    pub _bitfield_align_1: [u8; 0],
869    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
870    pub body: rb_method_definition_struct__bindgen_ty_1,
871    pub original_id: ID,
872}
873#[repr(C)]
874#[derive(Copy, Clone)]
875pub union rb_method_definition_struct__bindgen_ty_1 {
876    pub iseq: rb_method_iseq_t,
877    pub cfunc: rb_method_cfunc_t,
878    pub attr: rb_method_attr_t,
879    pub alias: rb_method_alias_t,
880    pub refined: rb_method_refined_t,
881    pub bmethod: rb_method_bmethod_t,
882    pub optimize_type: method_optimized_type,
883}
884impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
885    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
886        write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
887    }
888}
889impl rb_method_definition_struct {
890    #[inline]
891    pub fn type_(&self) -> rb_method_type_t {
892        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
893    }
894    #[inline]
895    pub fn set_type(&mut self, val: rb_method_type_t) {
896        unsafe {
897            let val: u32 = ::std::mem::transmute(val);
898            self._bitfield_1.set(0usize, 4u8, val as u64)
899        }
900    }
901    #[inline]
902    pub unsafe fn type__raw(this: *const Self) -> rb_method_type_t {
903        unsafe {
904            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
905                ::std::ptr::addr_of!((*this)._bitfield_1),
906                0usize,
907                4u8,
908            ) as u32)
909        }
910    }
911    #[inline]
912    pub unsafe fn set_type_raw(this: *mut Self, val: rb_method_type_t) {
913        unsafe {
914            let val: u32 = ::std::mem::transmute(val);
915            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
916                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
917                0usize,
918                4u8,
919                val as u64,
920            )
921        }
922    }
923    #[inline]
924    pub fn alias_count(&self) -> ::std::os::raw::c_int {
925        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
926    }
927    #[inline]
928    pub fn set_alias_count(&mut self, val: ::std::os::raw::c_int) {
929        unsafe {
930            let val: u32 = ::std::mem::transmute(val);
931            self._bitfield_1.set(4usize, 28u8, val as u64)
932        }
933    }
934    #[inline]
935    pub unsafe fn alias_count_raw(this: *const Self) -> ::std::os::raw::c_int {
936        unsafe {
937            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
938                ::std::ptr::addr_of!((*this)._bitfield_1),
939                4usize,
940                28u8,
941            ) as u32)
942        }
943    }
944    #[inline]
945    pub unsafe fn set_alias_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
946        unsafe {
947            let val: u32 = ::std::mem::transmute(val);
948            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
949                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
950                4usize,
951                28u8,
952                val as u64,
953            )
954        }
955    }
956    #[inline]
957    pub fn complemented_count(&self) -> ::std::os::raw::c_int {
958        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 28u8) as u32) }
959    }
960    #[inline]
961    pub fn set_complemented_count(&mut self, val: ::std::os::raw::c_int) {
962        unsafe {
963            let val: u32 = ::std::mem::transmute(val);
964            self._bitfield_1.set(32usize, 28u8, val as u64)
965        }
966    }
967    #[inline]
968    pub unsafe fn complemented_count_raw(this: *const Self) -> ::std::os::raw::c_int {
969        unsafe {
970            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
971                ::std::ptr::addr_of!((*this)._bitfield_1),
972                32usize,
973                28u8,
974            ) as u32)
975        }
976    }
977    #[inline]
978    pub unsafe fn set_complemented_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
979        unsafe {
980            let val: u32 = ::std::mem::transmute(val);
981            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
982                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
983                32usize,
984                28u8,
985                val as u64,
986            )
987        }
988    }
989    #[inline]
990    pub fn new_bitfield_1(
991        type_: rb_method_type_t,
992        alias_count: ::std::os::raw::c_int,
993        complemented_count: ::std::os::raw::c_int,
994    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
995        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
996        __bindgen_bitfield_unit.set(0usize, 4u8, {
997            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
998            type_ as u64
999        });
1000        __bindgen_bitfield_unit.set(4usize, 28u8, {
1001            let alias_count: u32 = unsafe { ::std::mem::transmute(alias_count) };
1002            alias_count as u64
1003        });
1004        __bindgen_bitfield_unit.set(32usize, 28u8, {
1005            let complemented_count: u32 = unsafe { ::std::mem::transmute(complemented_count) };
1006            complemented_count as u64
1007        });
1008        __bindgen_bitfield_unit
1009    }
1010}
1011pub type rb_atomic_t = ::std::os::raw::c_uint;
1012#[repr(C)]
1013#[derive(Debug, Copy, Clone)]
1014pub struct list_node {
1015    pub next: *mut list_node,
1016    pub prev: *mut list_node,
1017}
1018#[repr(C)]
1019#[derive(Debug, Copy, Clone)]
1020pub struct list_head {
1021    pub n: list_node,
1022}
1023pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
1024pub type rb_nativethread_id_t = pthread_t;
1025pub type rb_nativethread_lock_t = pthread_mutex_t;
1026pub type rb_nativethread_cond_t = pthread_cond_t;
1027#[repr(C)]
1028#[derive(Copy, Clone)]
1029pub struct native_thread_data_struct {
1030    pub node: native_thread_data_struct__bindgen_ty_1,
1031    pub cond: native_thread_data_struct__bindgen_ty_2,
1032}
1033#[repr(C)]
1034#[derive(Copy, Clone)]
1035pub union native_thread_data_struct__bindgen_ty_1 {
1036    pub ubf: list_node,
1037    pub gvl: list_node,
1038}
1039impl ::std::fmt::Debug for native_thread_data_struct__bindgen_ty_1 {
1040    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1041        write!(f, "native_thread_data_struct__bindgen_ty_1 {{ union }}")
1042    }
1043}
1044#[repr(C)]
1045#[derive(Copy, Clone)]
1046pub union native_thread_data_struct__bindgen_ty_2 {
1047    pub intr: rb_nativethread_cond_t,
1048    pub gvlq: rb_nativethread_cond_t,
1049}
1050impl ::std::fmt::Debug for native_thread_data_struct__bindgen_ty_2 {
1051    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1052        write!(f, "native_thread_data_struct__bindgen_ty_2 {{ union }}")
1053    }
1054}
1055impl ::std::fmt::Debug for native_thread_data_struct {
1056    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1057        write!(
1058            f,
1059            "native_thread_data_struct {{ node: {:?}, cond: {:?} }}",
1060            self.node, self.cond
1061        )
1062    }
1063}
1064pub type native_thread_data_t = native_thread_data_struct;
1065#[repr(C)]
1066#[derive(Copy, Clone)]
1067pub struct rb_global_vm_lock_struct {
1068    pub owner: *const rb_thread_struct,
1069    pub lock: rb_nativethread_lock_t,
1070    pub waitq: list_head,
1071    pub timer: *const rb_thread_struct,
1072    pub timer_err: ::std::os::raw::c_int,
1073    pub switch_cond: rb_nativethread_cond_t,
1074    pub switch_wait_cond: rb_nativethread_cond_t,
1075    pub need_yield: ::std::os::raw::c_int,
1076    pub wait_yield: ::std::os::raw::c_int,
1077}
1078impl ::std::fmt::Debug for rb_global_vm_lock_struct {
1079    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1080        write ! (f , "rb_global_vm_lock_struct {{ owner: {:?}, lock: {:?}, waitq: {:?}, timer: {:?}, timer_err: {:?}, switch_cond: {:?}, switch_wait_cond: {:?}, need_yield: {:?}, wait_yield: {:?} }}" , self . owner , self . lock , self . waitq , self . timer , self . timer_err , self . switch_cond , self . switch_wait_cond , self . need_yield , self . wait_yield)
1081    }
1082}
1083pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
1084#[repr(C)]
1085#[derive(Debug, Copy, Clone)]
1086pub struct __jmp_buf_tag {
1087    pub __jmpbuf: __jmp_buf,
1088    pub __mask_was_saved: ::std::os::raw::c_int,
1089    pub __saved_mask: __sigset_t,
1090}
1091pub type jmp_buf = [__jmp_buf_tag; 1usize];
1092pub type rb_snum_t = ::std::os::raw::c_long;
1093pub const ruby_tag_type_RUBY_TAG_NONE: ruby_tag_type = 0;
1094pub const ruby_tag_type_RUBY_TAG_RETURN: ruby_tag_type = 1;
1095pub const ruby_tag_type_RUBY_TAG_BREAK: ruby_tag_type = 2;
1096pub const ruby_tag_type_RUBY_TAG_NEXT: ruby_tag_type = 3;
1097pub const ruby_tag_type_RUBY_TAG_RETRY: ruby_tag_type = 4;
1098pub const ruby_tag_type_RUBY_TAG_REDO: ruby_tag_type = 5;
1099pub const ruby_tag_type_RUBY_TAG_RAISE: ruby_tag_type = 6;
1100pub const ruby_tag_type_RUBY_TAG_THROW: ruby_tag_type = 7;
1101pub const ruby_tag_type_RUBY_TAG_FATAL: ruby_tag_type = 8;
1102pub const ruby_tag_type_RUBY_TAG_MASK: ruby_tag_type = 15;
1103pub type ruby_tag_type = ::std::os::raw::c_uint;
1104pub type rb_compile_option_t = rb_compile_option_struct;
1105#[repr(C)]
1106#[derive(Copy, Clone)]
1107pub struct iseq_inline_cache_entry {
1108    pub ic_serial: rb_serial_t,
1109    pub ic_cref: *const rb_cref_t,
1110    pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
1111}
1112#[repr(C)]
1113#[derive(Copy, Clone)]
1114pub union iseq_inline_cache_entry__bindgen_ty_1 {
1115    pub index: usize,
1116    pub value: VALUE,
1117}
1118impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
1119    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1120        write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
1121    }
1122}
1123impl ::std::fmt::Debug for iseq_inline_cache_entry {
1124    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1125        write!(
1126            f,
1127            "iseq_inline_cache_entry {{ ic_serial: {:?}, ic_cref: {:?}, ic_value: {:?} }}",
1128            self.ic_serial, self.ic_cref, self.ic_value
1129        )
1130    }
1131}
1132#[repr(C)]
1133#[derive(Copy, Clone)]
1134pub union iseq_inline_storage_entry {
1135    pub once: iseq_inline_storage_entry__bindgen_ty_1,
1136    pub cache: iseq_inline_cache_entry,
1137}
1138#[repr(C)]
1139#[derive(Debug, Copy, Clone)]
1140pub struct iseq_inline_storage_entry__bindgen_ty_1 {
1141    pub running_thread: *mut rb_thread_struct,
1142    pub value: VALUE,
1143}
1144impl ::std::fmt::Debug for iseq_inline_storage_entry {
1145    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1146        write!(f, "iseq_inline_storage_entry {{ union }}")
1147    }
1148}
1149pub const method_missing_reason_MISSING_NOENTRY: method_missing_reason = 0;
1150pub const method_missing_reason_MISSING_PRIVATE: method_missing_reason = 1;
1151pub const method_missing_reason_MISSING_PROTECTED: method_missing_reason = 2;
1152pub const method_missing_reason_MISSING_FCALL: method_missing_reason = 4;
1153pub const method_missing_reason_MISSING_VCALL: method_missing_reason = 8;
1154pub const method_missing_reason_MISSING_SUPER: method_missing_reason = 16;
1155pub const method_missing_reason_MISSING_MISSING: method_missing_reason = 32;
1156pub const method_missing_reason_MISSING_NONE: method_missing_reason = 64;
1157pub type method_missing_reason = ::std::os::raw::c_uint;
1158#[repr(C)]
1159#[derive(Debug, Copy, Clone)]
1160pub struct rb_call_info {
1161    pub mid: ID,
1162    pub flag: ::std::os::raw::c_uint,
1163    pub orig_argc: ::std::os::raw::c_int,
1164}
1165#[repr(C)]
1166#[derive(Debug, Copy, Clone)]
1167pub struct rb_calling_info {
1168    pub block_handler: VALUE,
1169    pub recv: VALUE,
1170    pub argc: ::std::os::raw::c_int,
1171}
1172pub type vm_call_handler = ::std::option::Option<
1173    unsafe extern "C" fn(
1174        ec: *mut rb_execution_context_struct,
1175        cfp: *mut rb_control_frame_struct,
1176        calling: *mut rb_calling_info,
1177        ci: *const rb_call_info,
1178        cc: *mut rb_call_cache,
1179    ) -> VALUE,
1180>;
1181#[repr(C)]
1182#[derive(Copy, Clone)]
1183pub struct rb_call_cache {
1184    pub method_state: rb_serial_t,
1185    pub class_serial: rb_serial_t,
1186    pub me: *const rb_callable_method_entry_t,
1187    pub call: vm_call_handler,
1188    pub aux: rb_call_cache__bindgen_ty_1,
1189}
1190#[repr(C)]
1191#[derive(Copy, Clone)]
1192pub union rb_call_cache__bindgen_ty_1 {
1193    pub index: ::std::os::raw::c_uint,
1194    pub method_missing_reason: method_missing_reason,
1195    pub inc_sp: ::std::os::raw::c_int,
1196}
1197impl ::std::fmt::Debug for rb_call_cache__bindgen_ty_1 {
1198    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1199        write!(f, "rb_call_cache__bindgen_ty_1 {{ union }}")
1200    }
1201}
1202impl ::std::fmt::Debug for rb_call_cache {
1203    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1204        write ! (f , "rb_call_cache {{ method_state: {:?}, class_serial: {:?}, me: {:?}, call: {:?}, aux: {:?} }}" , self . method_state , self . class_serial , self . me , self . call , self . aux)
1205    }
1206}
1207#[repr(C)]
1208#[derive(Debug, Copy, Clone)]
1209pub struct rb_iseq_location_struct {
1210    pub pathobj: VALUE,
1211    pub base_label: VALUE,
1212    pub label: VALUE,
1213    pub first_lineno: VALUE,
1214    pub node_id: ::std::os::raw::c_int,
1215    pub code_location: rb_code_location_t,
1216}
1217pub type rb_iseq_location_t = rb_iseq_location_struct;
1218#[repr(C)]
1219#[derive(Debug, Copy, Clone)]
1220pub struct rb_mjit_unit {
1221    _unused: [u8; 0],
1222}
1223#[repr(C)]
1224#[derive(Debug, Copy, Clone)]
1225pub struct rb_iseq_constant_body {
1226    pub type_: rb_iseq_constant_body_iseq_type,
1227    pub iseq_size: ::std::os::raw::c_uint,
1228    pub iseq_encoded: *const VALUE,
1229    pub param: rb_iseq_constant_body__bindgen_ty_1,
1230    pub location: rb_iseq_location_t,
1231    pub insns_info: rb_iseq_constant_body_iseq_insn_info,
1232    pub local_table: *const ID,
1233    pub catch_table: *const iseq_catch_table,
1234    pub parent_iseq: *const rb_iseq_struct,
1235    pub local_iseq: *mut rb_iseq_struct,
1236    pub is_entries: *mut iseq_inline_storage_entry,
1237    pub ci_entries: *mut rb_call_info,
1238    pub cc_entries: *mut rb_call_cache,
1239    pub variable: rb_iseq_constant_body__bindgen_ty_2,
1240    pub local_table_size: ::std::os::raw::c_uint,
1241    pub is_size: ::std::os::raw::c_uint,
1242    pub ci_size: ::std::os::raw::c_uint,
1243    pub ci_kw_size: ::std::os::raw::c_uint,
1244    pub stack_max: ::std::os::raw::c_uint,
1245    pub jit_func: ::std::option::Option<
1246        unsafe extern "C" fn(
1247            arg1: *mut rb_execution_context_struct,
1248            arg2: *mut rb_control_frame_struct,
1249        ) -> VALUE,
1250    >,
1251    pub total_calls: ::std::os::raw::c_ulong,
1252    pub jit_unit: *mut rb_mjit_unit,
1253    pub catch_except_p: ::std::os::raw::c_char,
1254}
1255pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_TOP: rb_iseq_constant_body_iseq_type = 0;
1256pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_constant_body_iseq_type = 1;
1257pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_constant_body_iseq_type = 2;
1258pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_constant_body_iseq_type = 3;
1259pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_constant_body_iseq_type = 4;
1260pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_constant_body_iseq_type = 5;
1261pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_constant_body_iseq_type = 6;
1262pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_constant_body_iseq_type = 7;
1263pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_PLAIN: rb_iseq_constant_body_iseq_type = 8;
1264pub type rb_iseq_constant_body_iseq_type = ::std::os::raw::c_uint;
1265#[repr(C)]
1266#[derive(Debug, Copy, Clone)]
1267pub struct rb_iseq_constant_body__bindgen_ty_1 {
1268    pub flags: rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1,
1269    pub size: ::std::os::raw::c_uint,
1270    pub lead_num: ::std::os::raw::c_int,
1271    pub opt_num: ::std::os::raw::c_int,
1272    pub rest_start: ::std::os::raw::c_int,
1273    pub post_start: ::std::os::raw::c_int,
1274    pub post_num: ::std::os::raw::c_int,
1275    pub block_start: ::std::os::raw::c_int,
1276    pub opt_table: *const VALUE,
1277    pub keyword: *const rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword,
1278}
1279#[repr(C)]
1280#[repr(align(4))]
1281#[derive(Debug, Copy, Clone)]
1282pub struct rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1283    pub _bitfield_align_1: [u8; 0],
1284    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1285    pub __bindgen_padding_0: [u8; 3usize],
1286}
1287impl rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1288    #[inline]
1289    pub fn has_lead(&self) -> ::std::os::raw::c_uint {
1290        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1291    }
1292    #[inline]
1293    pub fn set_has_lead(&mut self, val: ::std::os::raw::c_uint) {
1294        unsafe {
1295            let val: u32 = ::std::mem::transmute(val);
1296            self._bitfield_1.set(0usize, 1u8, val as u64)
1297        }
1298    }
1299    #[inline]
1300    pub unsafe fn has_lead_raw(this: *const Self) -> ::std::os::raw::c_uint {
1301        unsafe {
1302            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1303                ::std::ptr::addr_of!((*this)._bitfield_1),
1304                0usize,
1305                1u8,
1306            ) as u32)
1307        }
1308    }
1309    #[inline]
1310    pub unsafe fn set_has_lead_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1311        unsafe {
1312            let val: u32 = ::std::mem::transmute(val);
1313            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1314                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1315                0usize,
1316                1u8,
1317                val as u64,
1318            )
1319        }
1320    }
1321    #[inline]
1322    pub fn has_opt(&self) -> ::std::os::raw::c_uint {
1323        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1324    }
1325    #[inline]
1326    pub fn set_has_opt(&mut self, val: ::std::os::raw::c_uint) {
1327        unsafe {
1328            let val: u32 = ::std::mem::transmute(val);
1329            self._bitfield_1.set(1usize, 1u8, val as u64)
1330        }
1331    }
1332    #[inline]
1333    pub unsafe fn has_opt_raw(this: *const Self) -> ::std::os::raw::c_uint {
1334        unsafe {
1335            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1336                ::std::ptr::addr_of!((*this)._bitfield_1),
1337                1usize,
1338                1u8,
1339            ) as u32)
1340        }
1341    }
1342    #[inline]
1343    pub unsafe fn set_has_opt_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1344        unsafe {
1345            let val: u32 = ::std::mem::transmute(val);
1346            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1347                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1348                1usize,
1349                1u8,
1350                val as u64,
1351            )
1352        }
1353    }
1354    #[inline]
1355    pub fn has_rest(&self) -> ::std::os::raw::c_uint {
1356        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1357    }
1358    #[inline]
1359    pub fn set_has_rest(&mut self, val: ::std::os::raw::c_uint) {
1360        unsafe {
1361            let val: u32 = ::std::mem::transmute(val);
1362            self._bitfield_1.set(2usize, 1u8, val as u64)
1363        }
1364    }
1365    #[inline]
1366    pub unsafe fn has_rest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1367        unsafe {
1368            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1369                ::std::ptr::addr_of!((*this)._bitfield_1),
1370                2usize,
1371                1u8,
1372            ) as u32)
1373        }
1374    }
1375    #[inline]
1376    pub unsafe fn set_has_rest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1377        unsafe {
1378            let val: u32 = ::std::mem::transmute(val);
1379            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1380                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1381                2usize,
1382                1u8,
1383                val as u64,
1384            )
1385        }
1386    }
1387    #[inline]
1388    pub fn has_post(&self) -> ::std::os::raw::c_uint {
1389        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
1390    }
1391    #[inline]
1392    pub fn set_has_post(&mut self, val: ::std::os::raw::c_uint) {
1393        unsafe {
1394            let val: u32 = ::std::mem::transmute(val);
1395            self._bitfield_1.set(3usize, 1u8, val as u64)
1396        }
1397    }
1398    #[inline]
1399    pub unsafe fn has_post_raw(this: *const Self) -> ::std::os::raw::c_uint {
1400        unsafe {
1401            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1402                ::std::ptr::addr_of!((*this)._bitfield_1),
1403                3usize,
1404                1u8,
1405            ) as u32)
1406        }
1407    }
1408    #[inline]
1409    pub unsafe fn set_has_post_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1410        unsafe {
1411            let val: u32 = ::std::mem::transmute(val);
1412            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1413                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1414                3usize,
1415                1u8,
1416                val as u64,
1417            )
1418        }
1419    }
1420    #[inline]
1421    pub fn has_kw(&self) -> ::std::os::raw::c_uint {
1422        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1423    }
1424    #[inline]
1425    pub fn set_has_kw(&mut self, val: ::std::os::raw::c_uint) {
1426        unsafe {
1427            let val: u32 = ::std::mem::transmute(val);
1428            self._bitfield_1.set(4usize, 1u8, val as u64)
1429        }
1430    }
1431    #[inline]
1432    pub unsafe fn has_kw_raw(this: *const Self) -> ::std::os::raw::c_uint {
1433        unsafe {
1434            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1435                ::std::ptr::addr_of!((*this)._bitfield_1),
1436                4usize,
1437                1u8,
1438            ) as u32)
1439        }
1440    }
1441    #[inline]
1442    pub unsafe fn set_has_kw_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1443        unsafe {
1444            let val: u32 = ::std::mem::transmute(val);
1445            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1446                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1447                4usize,
1448                1u8,
1449                val as u64,
1450            )
1451        }
1452    }
1453    #[inline]
1454    pub fn has_kwrest(&self) -> ::std::os::raw::c_uint {
1455        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1456    }
1457    #[inline]
1458    pub fn set_has_kwrest(&mut self, val: ::std::os::raw::c_uint) {
1459        unsafe {
1460            let val: u32 = ::std::mem::transmute(val);
1461            self._bitfield_1.set(5usize, 1u8, val as u64)
1462        }
1463    }
1464    #[inline]
1465    pub unsafe fn has_kwrest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1466        unsafe {
1467            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1468                ::std::ptr::addr_of!((*this)._bitfield_1),
1469                5usize,
1470                1u8,
1471            ) as u32)
1472        }
1473    }
1474    #[inline]
1475    pub unsafe fn set_has_kwrest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1476        unsafe {
1477            let val: u32 = ::std::mem::transmute(val);
1478            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1479                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1480                5usize,
1481                1u8,
1482                val as u64,
1483            )
1484        }
1485    }
1486    #[inline]
1487    pub fn has_block(&self) -> ::std::os::raw::c_uint {
1488        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
1489    }
1490    #[inline]
1491    pub fn set_has_block(&mut self, val: ::std::os::raw::c_uint) {
1492        unsafe {
1493            let val: u32 = ::std::mem::transmute(val);
1494            self._bitfield_1.set(6usize, 1u8, val as u64)
1495        }
1496    }
1497    #[inline]
1498    pub unsafe fn has_block_raw(this: *const Self) -> ::std::os::raw::c_uint {
1499        unsafe {
1500            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1501                ::std::ptr::addr_of!((*this)._bitfield_1),
1502                6usize,
1503                1u8,
1504            ) as u32)
1505        }
1506    }
1507    #[inline]
1508    pub unsafe fn set_has_block_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1509        unsafe {
1510            let val: u32 = ::std::mem::transmute(val);
1511            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1512                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1513                6usize,
1514                1u8,
1515                val as u64,
1516            )
1517        }
1518    }
1519    #[inline]
1520    pub fn ambiguous_param0(&self) -> ::std::os::raw::c_uint {
1521        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
1522    }
1523    #[inline]
1524    pub fn set_ambiguous_param0(&mut self, val: ::std::os::raw::c_uint) {
1525        unsafe {
1526            let val: u32 = ::std::mem::transmute(val);
1527            self._bitfield_1.set(7usize, 1u8, val as u64)
1528        }
1529    }
1530    #[inline]
1531    pub unsafe fn ambiguous_param0_raw(this: *const Self) -> ::std::os::raw::c_uint {
1532        unsafe {
1533            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1534                ::std::ptr::addr_of!((*this)._bitfield_1),
1535                7usize,
1536                1u8,
1537            ) as u32)
1538        }
1539    }
1540    #[inline]
1541    pub unsafe fn set_ambiguous_param0_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1542        unsafe {
1543            let val: u32 = ::std::mem::transmute(val);
1544            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1545                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1546                7usize,
1547                1u8,
1548                val as u64,
1549            )
1550        }
1551    }
1552    #[inline]
1553    pub fn new_bitfield_1(
1554        has_lead: ::std::os::raw::c_uint,
1555        has_opt: ::std::os::raw::c_uint,
1556        has_rest: ::std::os::raw::c_uint,
1557        has_post: ::std::os::raw::c_uint,
1558        has_kw: ::std::os::raw::c_uint,
1559        has_kwrest: ::std::os::raw::c_uint,
1560        has_block: ::std::os::raw::c_uint,
1561        ambiguous_param0: ::std::os::raw::c_uint,
1562    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1563        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1564        __bindgen_bitfield_unit.set(0usize, 1u8, {
1565            let has_lead: u32 = unsafe { ::std::mem::transmute(has_lead) };
1566            has_lead as u64
1567        });
1568        __bindgen_bitfield_unit.set(1usize, 1u8, {
1569            let has_opt: u32 = unsafe { ::std::mem::transmute(has_opt) };
1570            has_opt as u64
1571        });
1572        __bindgen_bitfield_unit.set(2usize, 1u8, {
1573            let has_rest: u32 = unsafe { ::std::mem::transmute(has_rest) };
1574            has_rest as u64
1575        });
1576        __bindgen_bitfield_unit.set(3usize, 1u8, {
1577            let has_post: u32 = unsafe { ::std::mem::transmute(has_post) };
1578            has_post as u64
1579        });
1580        __bindgen_bitfield_unit.set(4usize, 1u8, {
1581            let has_kw: u32 = unsafe { ::std::mem::transmute(has_kw) };
1582            has_kw as u64
1583        });
1584        __bindgen_bitfield_unit.set(5usize, 1u8, {
1585            let has_kwrest: u32 = unsafe { ::std::mem::transmute(has_kwrest) };
1586            has_kwrest as u64
1587        });
1588        __bindgen_bitfield_unit.set(6usize, 1u8, {
1589            let has_block: u32 = unsafe { ::std::mem::transmute(has_block) };
1590            has_block as u64
1591        });
1592        __bindgen_bitfield_unit.set(7usize, 1u8, {
1593            let ambiguous_param0: u32 = unsafe { ::std::mem::transmute(ambiguous_param0) };
1594            ambiguous_param0 as u64
1595        });
1596        __bindgen_bitfield_unit
1597    }
1598}
1599#[repr(C)]
1600#[derive(Debug, Copy, Clone)]
1601pub struct rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword {
1602    pub num: ::std::os::raw::c_int,
1603    pub required_num: ::std::os::raw::c_int,
1604    pub bits_start: ::std::os::raw::c_int,
1605    pub rest_start: ::std::os::raw::c_int,
1606    pub table: *const ID,
1607    pub default_values: *const VALUE,
1608}
1609#[repr(C)]
1610#[derive(Debug, Copy, Clone)]
1611pub struct rb_iseq_constant_body_iseq_insn_info {
1612    pub body: *const iseq_insn_info_entry,
1613    pub positions: *mut ::std::os::raw::c_uint,
1614    pub size: ::std::os::raw::c_uint,
1615    pub succ_index_table: *mut succ_index_table,
1616}
1617#[repr(C)]
1618#[derive(Debug, Copy, Clone)]
1619pub struct rb_iseq_constant_body__bindgen_ty_2 {
1620    pub flip_count: rb_snum_t,
1621    pub coverage: VALUE,
1622    pub pc2branchindex: VALUE,
1623    pub original_iseq: *mut VALUE,
1624}
1625#[repr(C)]
1626#[derive(Copy, Clone)]
1627pub struct rb_iseq_struct {
1628    pub flags: VALUE,
1629    pub wrapper: VALUE,
1630    pub body: *mut rb_iseq_constant_body,
1631    pub aux: rb_iseq_struct__bindgen_ty_1,
1632}
1633#[repr(C)]
1634#[derive(Copy, Clone)]
1635pub union rb_iseq_struct__bindgen_ty_1 {
1636    pub compile_data: *mut iseq_compile_data,
1637    pub loader: rb_iseq_struct__bindgen_ty_1__bindgen_ty_1,
1638    pub exec: rb_iseq_struct__bindgen_ty_1__bindgen_ty_2,
1639}
1640#[repr(C)]
1641#[derive(Debug, Copy, Clone)]
1642pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_1 {
1643    pub obj: VALUE,
1644    pub index: ::std::os::raw::c_int,
1645}
1646#[repr(C)]
1647#[derive(Debug, Copy, Clone)]
1648pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_2 {
1649    pub local_hooks: *mut rb_hook_list_struct,
1650    pub global_trace_events: rb_event_flag_t,
1651}
1652impl ::std::fmt::Debug for rb_iseq_struct__bindgen_ty_1 {
1653    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1654        write!(f, "rb_iseq_struct__bindgen_ty_1 {{ union }}")
1655    }
1656}
1657impl ::std::fmt::Debug for rb_iseq_struct {
1658    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1659        write!(
1660            f,
1661            "rb_iseq_struct {{ flags: {:?}, wrapper: {:?}, body: {:?}, aux: {:?} }}",
1662            self.flags, self.wrapper, self.body, self.aux
1663        )
1664    }
1665}
1666pub type rb_vm_at_exit_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut rb_vm_struct)>;
1667#[repr(C)]
1668#[derive(Debug, Copy, Clone)]
1669pub struct rb_at_exit_list {
1670    pub func: rb_vm_at_exit_func,
1671    pub next: *mut rb_at_exit_list,
1672}
1673#[repr(C)]
1674#[derive(Debug, Copy, Clone)]
1675pub struct rb_objspace {
1676    _unused: [u8; 0],
1677}
1678#[repr(C)]
1679#[derive(Debug, Copy, Clone)]
1680pub struct rb_hook_list_struct {
1681    pub hooks: *mut rb_event_hook_struct,
1682    pub events: rb_event_flag_t,
1683    pub need_clean: ::std::os::raw::c_uint,
1684    pub running: ::std::os::raw::c_uint,
1685}
1686pub type rb_hook_list_t = rb_hook_list_struct;
1687#[repr(C)]
1688#[derive(Copy, Clone)]
1689pub struct rb_vm_struct {
1690    pub self_: VALUE,
1691    pub gvl: rb_global_vm_lock_t,
1692    pub main_thread: *mut rb_thread_struct,
1693    pub running_thread: *const rb_thread_struct,
1694    pub main_altstack: *mut ::std::os::raw::c_void,
1695    pub fork_gen: rb_serial_t,
1696    pub waitpid_lock: rb_nativethread_lock_t,
1697    pub waiting_pids: list_head,
1698    pub waiting_grps: list_head,
1699    pub waiting_fds: list_head,
1700    pub living_threads: list_head,
1701    pub thgroup_default: VALUE,
1702    pub living_thread_num: ::std::os::raw::c_int,
1703    pub _bitfield_align_1: [u8; 0],
1704    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1705    pub sleeper: ::std::os::raw::c_int,
1706    pub mark_object_ary: VALUE,
1707    pub special_exceptions: [VALUE; 5usize],
1708    pub top_self: VALUE,
1709    pub load_path: VALUE,
1710    pub load_path_snapshot: VALUE,
1711    pub load_path_check_cache: VALUE,
1712    pub expanded_load_path: VALUE,
1713    pub loaded_features: VALUE,
1714    pub loaded_features_snapshot: VALUE,
1715    pub loaded_features_index: *mut st_table,
1716    pub loading_table: *mut st_table,
1717    pub trap_list: rb_vm_struct__bindgen_ty_1,
1718    pub global_hooks: rb_hook_list_t,
1719    pub ensure_rollback_table: *mut st_table,
1720    pub postponed_job_buffer: *mut rb_postponed_job_struct,
1721    pub postponed_job_index: ::std::os::raw::c_int,
1722    pub src_encoding_index: ::std::os::raw::c_int,
1723    pub workqueue: list_head,
1724    pub workqueue_lock: rb_nativethread_lock_t,
1725    pub verbose: VALUE,
1726    pub debug: VALUE,
1727    pub orig_progname: VALUE,
1728    pub progname: VALUE,
1729    pub coverages: VALUE,
1730    pub coverage_mode: ::std::os::raw::c_int,
1731    pub defined_module_hash: VALUE,
1732    pub objspace: *mut rb_objspace,
1733    pub at_exit: *mut rb_at_exit_list,
1734    pub defined_strings: *mut VALUE,
1735    pub frozen_strings: *mut st_table,
1736    pub default_params: rb_vm_struct__bindgen_ty_2,
1737    pub redefined_flag: [::std::os::raw::c_short; 28usize],
1738}
1739#[repr(C)]
1740#[derive(Debug, Copy, Clone)]
1741pub struct rb_vm_struct__bindgen_ty_1 {
1742    pub cmd: [VALUE; 65usize],
1743    pub safe: [::std::os::raw::c_uchar; 65usize],
1744}
1745#[repr(C)]
1746#[derive(Debug, Copy, Clone)]
1747pub struct rb_vm_struct__bindgen_ty_2 {
1748    pub thread_vm_stack_size: usize,
1749    pub thread_machine_stack_size: usize,
1750    pub fiber_vm_stack_size: usize,
1751    pub fiber_machine_stack_size: usize,
1752}
1753impl ::std::fmt::Debug for rb_vm_struct {
1754    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1755        write ! (f , "rb_vm_struct {{ self: {:?}, gvl: {:?}, main_thread: {:?}, running_thread: {:?}, main_altstack: {:?}, fork_gen: {:?}, waitpid_lock: {:?}, waiting_pids: {:?}, waiting_grps: {:?}, waiting_fds: {:?}, living_threads: {:?}, thgroup_default: {:?}, living_thread_num: {:?}, running : {:?}, thread_abort_on_exception : {:?}, thread_report_on_exception : {:?}, safe_level_ : {:?}, 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: {:?}, global_hooks: {:?}, ensure_rollback_table: {:?}, postponed_job_buffer: {:?}, postponed_job_index: {:?}, src_encoding_index: {:?}, workqueue: {:?}, workqueue_lock: {:?}, 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 . main_thread , self . running_thread , self . main_altstack , self . fork_gen , self . waitpid_lock , self . waiting_pids , self . waiting_grps , self . waiting_fds , self . living_threads , self . thgroup_default , self . living_thread_num , self . running () , self . thread_abort_on_exception () , self . thread_report_on_exception () , self . safe_level_ () , 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 . global_hooks , self . ensure_rollback_table , self . postponed_job_buffer , self . postponed_job_index , self . src_encoding_index , self . workqueue , self . workqueue_lock , 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)
1756    }
1757}
1758impl rb_vm_struct {
1759    #[inline]
1760    pub fn running(&self) -> ::std::os::raw::c_uint {
1761        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1762    }
1763    #[inline]
1764    pub fn set_running(&mut self, val: ::std::os::raw::c_uint) {
1765        unsafe {
1766            let val: u32 = ::std::mem::transmute(val);
1767            self._bitfield_1.set(0usize, 1u8, val as u64)
1768        }
1769    }
1770    #[inline]
1771    pub unsafe fn running_raw(this: *const Self) -> ::std::os::raw::c_uint {
1772        unsafe {
1773            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1774                ::std::ptr::addr_of!((*this)._bitfield_1),
1775                0usize,
1776                1u8,
1777            ) as u32)
1778        }
1779    }
1780    #[inline]
1781    pub unsafe fn set_running_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1782        unsafe {
1783            let val: u32 = ::std::mem::transmute(val);
1784            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1785                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1786                0usize,
1787                1u8,
1788                val as u64,
1789            )
1790        }
1791    }
1792    #[inline]
1793    pub fn thread_abort_on_exception(&self) -> ::std::os::raw::c_uint {
1794        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1795    }
1796    #[inline]
1797    pub fn set_thread_abort_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1798        unsafe {
1799            let val: u32 = ::std::mem::transmute(val);
1800            self._bitfield_1.set(1usize, 1u8, val as u64)
1801        }
1802    }
1803    #[inline]
1804    pub unsafe fn thread_abort_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1805        unsafe {
1806            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1807                ::std::ptr::addr_of!((*this)._bitfield_1),
1808                1usize,
1809                1u8,
1810            ) as u32)
1811        }
1812    }
1813    #[inline]
1814    pub unsafe fn set_thread_abort_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1815        unsafe {
1816            let val: u32 = ::std::mem::transmute(val);
1817            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1818                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1819                1usize,
1820                1u8,
1821                val as u64,
1822            )
1823        }
1824    }
1825    #[inline]
1826    pub fn thread_report_on_exception(&self) -> ::std::os::raw::c_uint {
1827        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1828    }
1829    #[inline]
1830    pub fn set_thread_report_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1831        unsafe {
1832            let val: u32 = ::std::mem::transmute(val);
1833            self._bitfield_1.set(2usize, 1u8, val as u64)
1834        }
1835    }
1836    #[inline]
1837    pub unsafe fn thread_report_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1838        unsafe {
1839            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1840                ::std::ptr::addr_of!((*this)._bitfield_1),
1841                2usize,
1842                1u8,
1843            ) as u32)
1844        }
1845    }
1846    #[inline]
1847    pub unsafe fn set_thread_report_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1848        unsafe {
1849            let val: u32 = ::std::mem::transmute(val);
1850            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1851                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1852                2usize,
1853                1u8,
1854                val as u64,
1855            )
1856        }
1857    }
1858    #[inline]
1859    pub fn safe_level_(&self) -> ::std::os::raw::c_uint {
1860        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
1861    }
1862    #[inline]
1863    pub fn set_safe_level_(&mut self, val: ::std::os::raw::c_uint) {
1864        unsafe {
1865            let val: u32 = ::std::mem::transmute(val);
1866            self._bitfield_1.set(3usize, 1u8, val as u64)
1867        }
1868    }
1869    #[inline]
1870    pub unsafe fn safe_level__raw(this: *const Self) -> ::std::os::raw::c_uint {
1871        unsafe {
1872            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1873                ::std::ptr::addr_of!((*this)._bitfield_1),
1874                3usize,
1875                1u8,
1876            ) as u32)
1877        }
1878    }
1879    #[inline]
1880    pub unsafe fn set_safe_level__raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1881        unsafe {
1882            let val: u32 = ::std::mem::transmute(val);
1883            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1884                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1885                3usize,
1886                1u8,
1887                val as u64,
1888            )
1889        }
1890    }
1891    #[inline]
1892    pub fn new_bitfield_1(
1893        running: ::std::os::raw::c_uint,
1894        thread_abort_on_exception: ::std::os::raw::c_uint,
1895        thread_report_on_exception: ::std::os::raw::c_uint,
1896        safe_level_: ::std::os::raw::c_uint,
1897    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1898        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1899        __bindgen_bitfield_unit.set(0usize, 1u8, {
1900            let running: u32 = unsafe { ::std::mem::transmute(running) };
1901            running as u64
1902        });
1903        __bindgen_bitfield_unit.set(1usize, 1u8, {
1904            let thread_abort_on_exception: u32 =
1905                unsafe { ::std::mem::transmute(thread_abort_on_exception) };
1906            thread_abort_on_exception as u64
1907        });
1908        __bindgen_bitfield_unit.set(2usize, 1u8, {
1909            let thread_report_on_exception: u32 =
1910                unsafe { ::std::mem::transmute(thread_report_on_exception) };
1911            thread_report_on_exception as u64
1912        });
1913        __bindgen_bitfield_unit.set(3usize, 1u8, {
1914            let safe_level_: u32 = unsafe { ::std::mem::transmute(safe_level_) };
1915            safe_level_ as u64
1916        });
1917        __bindgen_bitfield_unit
1918    }
1919}
1920pub type rb_vm_t = rb_vm_struct;
1921#[repr(C)]
1922#[derive(Debug, Copy, Clone)]
1923pub struct rb_control_frame_struct {
1924    pub pc: *const VALUE,
1925    pub sp: *mut VALUE,
1926    pub iseq: *const rb_iseq_t,
1927    pub self_: VALUE,
1928    pub ep: *const VALUE,
1929    pub block_code: *const ::std::os::raw::c_void,
1930    pub bp: *const VALUE,
1931}
1932pub type rb_control_frame_t = rb_control_frame_struct;
1933pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 0;
1934pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 1;
1935pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 2;
1936pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 3;
1937pub type rb_thread_status = ::std::os::raw::c_uint;
1938pub type rb_jmpbuf_t = jmp_buf;
1939#[repr(C)]
1940#[derive(Debug, Copy, Clone)]
1941pub struct rb_vm_tag {
1942    pub tag: VALUE,
1943    pub retval: VALUE,
1944    pub buf: rb_jmpbuf_t,
1945    pub prev: *mut rb_vm_tag,
1946    pub state: ruby_tag_type,
1947}
1948#[repr(C)]
1949#[derive(Debug, Copy, Clone)]
1950pub struct rb_vm_protect_tag {
1951    pub prev: *mut rb_vm_protect_tag,
1952}
1953#[repr(C)]
1954#[derive(Debug, Copy, Clone)]
1955pub struct rb_unblock_callback {
1956    pub func: rb_unblock_function_t,
1957    pub arg: *mut ::std::os::raw::c_void,
1958}
1959#[repr(C)]
1960#[derive(Debug, Copy, Clone)]
1961pub struct rb_mutex_struct {
1962    _unused: [u8; 0],
1963}
1964#[repr(C)]
1965#[derive(Debug, Copy, Clone)]
1966pub struct rb_thread_list_struct {
1967    pub next: *mut rb_thread_list_struct,
1968    pub th: *mut rb_thread_struct,
1969}
1970pub type rb_thread_list_t = rb_thread_list_struct;
1971#[repr(C)]
1972#[derive(Debug, Copy, Clone)]
1973pub struct rb_ensure_entry {
1974    pub marker: VALUE,
1975    pub e_proc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1976    pub data2: VALUE,
1977}
1978#[repr(C)]
1979#[derive(Debug, Copy, Clone)]
1980pub struct rb_ensure_list {
1981    pub next: *mut rb_ensure_list,
1982    pub entry: rb_ensure_entry,
1983}
1984pub type rb_ensure_list_t = rb_ensure_list;
1985#[repr(C)]
1986#[derive(Debug, Copy, Clone)]
1987pub struct rb_fiber_struct {
1988    _unused: [u8; 0],
1989}
1990pub type rb_fiber_t = rb_fiber_struct;
1991#[repr(C)]
1992#[derive(Debug, Copy, Clone)]
1993pub struct rb_execution_context_struct {
1994    pub vm_stack: *mut VALUE,
1995    pub vm_stack_size: usize,
1996    pub cfp: *mut rb_control_frame_t,
1997    pub tag: *mut rb_vm_tag,
1998    pub protect_tag: *mut rb_vm_protect_tag,
1999    pub interrupt_flag: rb_atomic_t,
2000    pub interrupt_mask: rb_atomic_t,
2001    pub fiber_ptr: *mut rb_fiber_t,
2002    pub thread_ptr: *mut rb_thread_struct,
2003    pub local_storage: *mut st_table,
2004    pub local_storage_recursive_hash: VALUE,
2005    pub local_storage_recursive_hash_for_trace: VALUE,
2006    pub root_lep: *const VALUE,
2007    pub root_svar: VALUE,
2008    pub ensure_list: *mut rb_ensure_list_t,
2009    pub trace_arg: *mut rb_trace_arg_struct,
2010    pub errinfo: VALUE,
2011    pub passed_block_handler: VALUE,
2012    pub raised_flag: u8,
2013    pub _bitfield_align_1: [u8; 0],
2014    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2015    pub private_const_reference: VALUE,
2016    pub machine: rb_execution_context_struct__bindgen_ty_1,
2017}
2018#[repr(C)]
2019#[derive(Debug, Copy, Clone)]
2020pub struct rb_execution_context_struct__bindgen_ty_1 {
2021    pub stack_start: *mut VALUE,
2022    pub stack_end: *mut VALUE,
2023    pub stack_maxsize: usize,
2024    pub regs: jmp_buf,
2025}
2026impl rb_execution_context_struct {
2027    #[inline]
2028    pub fn method_missing_reason(&self) -> method_missing_reason {
2029        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
2030    }
2031    #[inline]
2032    pub fn set_method_missing_reason(&mut self, val: method_missing_reason) {
2033        unsafe {
2034            let val: u32 = ::std::mem::transmute(val);
2035            self._bitfield_1.set(0usize, 8u8, val as u64)
2036        }
2037    }
2038    #[inline]
2039    pub unsafe fn method_missing_reason_raw(this: *const Self) -> method_missing_reason {
2040        unsafe {
2041            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2042                ::std::ptr::addr_of!((*this)._bitfield_1),
2043                0usize,
2044                8u8,
2045            ) as u32)
2046        }
2047    }
2048    #[inline]
2049    pub unsafe fn set_method_missing_reason_raw(this: *mut Self, val: method_missing_reason) {
2050        unsafe {
2051            let val: u32 = ::std::mem::transmute(val);
2052            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2053                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2054                0usize,
2055                8u8,
2056                val as u64,
2057            )
2058        }
2059    }
2060    #[inline]
2061    pub fn new_bitfield_1(
2062        method_missing_reason: method_missing_reason,
2063    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2064        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2065        __bindgen_bitfield_unit.set(0usize, 8u8, {
2066            let method_missing_reason: u32 =
2067                unsafe { ::std::mem::transmute(method_missing_reason) };
2068            method_missing_reason as u64
2069        });
2070        __bindgen_bitfield_unit
2071    }
2072}
2073pub type rb_execution_context_t = rb_execution_context_struct;
2074#[repr(C)]
2075#[derive(Copy, Clone)]
2076pub struct rb_thread_struct {
2077    pub vmlt_node: list_node,
2078    pub self_: VALUE,
2079    pub vm: *mut rb_vm_t,
2080    pub ec: *mut rb_execution_context_t,
2081    pub last_status: VALUE,
2082    pub calling: *mut rb_calling_info,
2083    pub top_self: VALUE,
2084    pub top_wrapper: VALUE,
2085    pub thread_id: rb_nativethread_id_t,
2086    pub _bitfield_align_1: [u8; 0],
2087    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2088    pub priority: i8,
2089    pub running_time_us: u32,
2090    pub native_thread_data: native_thread_data_t,
2091    pub blocking_region_buffer: *mut ::std::os::raw::c_void,
2092    pub thgroup: VALUE,
2093    pub value: VALUE,
2094    pub pending_interrupt_queue: VALUE,
2095    pub pending_interrupt_mask_stack: VALUE,
2096    pub interrupt_lock: rb_nativethread_lock_t,
2097    pub unblock: rb_unblock_callback,
2098    pub locking_mutex: VALUE,
2099    pub keeping_mutexes: *mut rb_mutex_struct,
2100    pub join_list: *mut rb_thread_list_t,
2101    pub invoke_arg: rb_thread_struct__bindgen_ty_1,
2102    pub invoke_type: rb_thread_struct__bindgen_ty_2,
2103    pub stat_insn_usage: VALUE,
2104    pub root_fiber: *mut rb_fiber_t,
2105    pub root_jmpbuf: rb_jmpbuf_t,
2106    pub name: VALUE,
2107}
2108#[repr(C)]
2109#[derive(Copy, Clone)]
2110pub union rb_thread_struct__bindgen_ty_1 {
2111    pub proc_: rb_thread_struct__bindgen_ty_1__bindgen_ty_1,
2112    pub func: rb_thread_struct__bindgen_ty_1__bindgen_ty_2,
2113}
2114#[repr(C)]
2115#[derive(Debug, Copy, Clone)]
2116pub struct rb_thread_struct__bindgen_ty_1__bindgen_ty_1 {
2117    pub proc_: VALUE,
2118    pub args: VALUE,
2119}
2120#[repr(C)]
2121#[derive(Debug, Copy, Clone)]
2122pub struct rb_thread_struct__bindgen_ty_1__bindgen_ty_2 {
2123    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
2124    pub arg: *mut ::std::os::raw::c_void,
2125}
2126impl ::std::fmt::Debug for rb_thread_struct__bindgen_ty_1 {
2127    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2128        write!(f, "rb_thread_struct__bindgen_ty_1 {{ union }}")
2129    }
2130}
2131pub const rb_thread_struct_thread_invoke_type_none: rb_thread_struct__bindgen_ty_2 = 0;
2132pub const rb_thread_struct_thread_invoke_type_proc: rb_thread_struct__bindgen_ty_2 = 1;
2133pub const rb_thread_struct_thread_invoke_type_func: rb_thread_struct__bindgen_ty_2 = 2;
2134pub type rb_thread_struct__bindgen_ty_2 = ::std::os::raw::c_uint;
2135impl ::std::fmt::Debug for rb_thread_struct {
2136    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2137        write ! (f , "rb_thread_struct {{ vmlt_node: {:?}, self: {:?}, vm: {:?}, ec: {:?}, last_status: {:?}, calling: {:?}, top_self: {:?}, top_wrapper: {:?}, thread_id: {:?}, status : {:?}, to_kill : {:?}, abort_on_exception : {:?}, report_on_exception : {:?}, pending_interrupt_queue_checked : {:?}, native_thread_data: {:?}, blocking_region_buffer: {:?}, thgroup: {:?}, value: {:?}, pending_interrupt_queue: {:?}, pending_interrupt_mask_stack: {:?}, interrupt_lock: {:?}, unblock: {:?}, locking_mutex: {:?}, keeping_mutexes: {:?}, join_list: {:?}, invoke_arg: {:?}, invoke_type: {:?}, stat_insn_usage: {:?}, root_fiber: {:?}, root_jmpbuf: {:?}, 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 . abort_on_exception () , self . report_on_exception () , self . pending_interrupt_queue_checked () , self . native_thread_data , self . blocking_region_buffer , self . thgroup , self . value , self . pending_interrupt_queue , self . pending_interrupt_mask_stack , self . interrupt_lock , self . unblock , self . locking_mutex , self . keeping_mutexes , self . join_list , self . invoke_arg , self . invoke_type , self . stat_insn_usage , self . root_fiber , self . root_jmpbuf , self . name)
2138    }
2139}
2140impl rb_thread_struct {
2141    #[inline]
2142    pub fn status(&self) -> rb_thread_status {
2143        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
2144    }
2145    #[inline]
2146    pub fn set_status(&mut self, val: rb_thread_status) {
2147        unsafe {
2148            let val: u32 = ::std::mem::transmute(val);
2149            self._bitfield_1.set(0usize, 2u8, val as u64)
2150        }
2151    }
2152    #[inline]
2153    pub unsafe fn status_raw(this: *const Self) -> rb_thread_status {
2154        unsafe {
2155            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2156                ::std::ptr::addr_of!((*this)._bitfield_1),
2157                0usize,
2158                2u8,
2159            ) as u32)
2160        }
2161    }
2162    #[inline]
2163    pub unsafe fn set_status_raw(this: *mut Self, val: rb_thread_status) {
2164        unsafe {
2165            let val: u32 = ::std::mem::transmute(val);
2166            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2167                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2168                0usize,
2169                2u8,
2170                val as u64,
2171            )
2172        }
2173    }
2174    #[inline]
2175    pub fn to_kill(&self) -> ::std::os::raw::c_uint {
2176        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
2177    }
2178    #[inline]
2179    pub fn set_to_kill(&mut self, val: ::std::os::raw::c_uint) {
2180        unsafe {
2181            let val: u32 = ::std::mem::transmute(val);
2182            self._bitfield_1.set(2usize, 1u8, val as u64)
2183        }
2184    }
2185    #[inline]
2186    pub unsafe fn to_kill_raw(this: *const Self) -> ::std::os::raw::c_uint {
2187        unsafe {
2188            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2189                ::std::ptr::addr_of!((*this)._bitfield_1),
2190                2usize,
2191                1u8,
2192            ) as u32)
2193        }
2194    }
2195    #[inline]
2196    pub unsafe fn set_to_kill_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2197        unsafe {
2198            let val: u32 = ::std::mem::transmute(val);
2199            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2200                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2201                2usize,
2202                1u8,
2203                val as u64,
2204            )
2205        }
2206    }
2207    #[inline]
2208    pub fn abort_on_exception(&self) -> ::std::os::raw::c_uint {
2209        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
2210    }
2211    #[inline]
2212    pub fn set_abort_on_exception(&mut self, val: ::std::os::raw::c_uint) {
2213        unsafe {
2214            let val: u32 = ::std::mem::transmute(val);
2215            self._bitfield_1.set(3usize, 1u8, val as u64)
2216        }
2217    }
2218    #[inline]
2219    pub unsafe fn abort_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
2220        unsafe {
2221            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2222                ::std::ptr::addr_of!((*this)._bitfield_1),
2223                3usize,
2224                1u8,
2225            ) as u32)
2226        }
2227    }
2228    #[inline]
2229    pub unsafe fn set_abort_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2230        unsafe {
2231            let val: u32 = ::std::mem::transmute(val);
2232            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2233                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2234                3usize,
2235                1u8,
2236                val as u64,
2237            )
2238        }
2239    }
2240    #[inline]
2241    pub fn report_on_exception(&self) -> ::std::os::raw::c_uint {
2242        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
2243    }
2244    #[inline]
2245    pub fn set_report_on_exception(&mut self, val: ::std::os::raw::c_uint) {
2246        unsafe {
2247            let val: u32 = ::std::mem::transmute(val);
2248            self._bitfield_1.set(4usize, 1u8, val as u64)
2249        }
2250    }
2251    #[inline]
2252    pub unsafe fn report_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
2253        unsafe {
2254            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2255                ::std::ptr::addr_of!((*this)._bitfield_1),
2256                4usize,
2257                1u8,
2258            ) as u32)
2259        }
2260    }
2261    #[inline]
2262    pub unsafe fn set_report_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2263        unsafe {
2264            let val: u32 = ::std::mem::transmute(val);
2265            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2266                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2267                4usize,
2268                1u8,
2269                val as u64,
2270            )
2271        }
2272    }
2273    #[inline]
2274    pub fn pending_interrupt_queue_checked(&self) -> ::std::os::raw::c_uint {
2275        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
2276    }
2277    #[inline]
2278    pub fn set_pending_interrupt_queue_checked(&mut self, val: ::std::os::raw::c_uint) {
2279        unsafe {
2280            let val: u32 = ::std::mem::transmute(val);
2281            self._bitfield_1.set(5usize, 1u8, val as u64)
2282        }
2283    }
2284    #[inline]
2285    pub unsafe fn pending_interrupt_queue_checked_raw(this: *const Self) -> ::std::os::raw::c_uint {
2286        unsafe {
2287            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2288                ::std::ptr::addr_of!((*this)._bitfield_1),
2289                5usize,
2290                1u8,
2291            ) as u32)
2292        }
2293    }
2294    #[inline]
2295    pub unsafe fn set_pending_interrupt_queue_checked_raw(
2296        this: *mut Self,
2297        val: ::std::os::raw::c_uint,
2298    ) {
2299        unsafe {
2300            let val: u32 = ::std::mem::transmute(val);
2301            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2302                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2303                5usize,
2304                1u8,
2305                val as u64,
2306            )
2307        }
2308    }
2309    #[inline]
2310    pub fn new_bitfield_1(
2311        status: rb_thread_status,
2312        to_kill: ::std::os::raw::c_uint,
2313        abort_on_exception: ::std::os::raw::c_uint,
2314        report_on_exception: ::std::os::raw::c_uint,
2315        pending_interrupt_queue_checked: ::std::os::raw::c_uint,
2316    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2317        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2318        __bindgen_bitfield_unit.set(0usize, 2u8, {
2319            let status: u32 = unsafe { ::std::mem::transmute(status) };
2320            status as u64
2321        });
2322        __bindgen_bitfield_unit.set(2usize, 1u8, {
2323            let to_kill: u32 = unsafe { ::std::mem::transmute(to_kill) };
2324            to_kill as u64
2325        });
2326        __bindgen_bitfield_unit.set(3usize, 1u8, {
2327            let abort_on_exception: u32 = unsafe { ::std::mem::transmute(abort_on_exception) };
2328            abort_on_exception as u64
2329        });
2330        __bindgen_bitfield_unit.set(4usize, 1u8, {
2331            let report_on_exception: u32 = unsafe { ::std::mem::transmute(report_on_exception) };
2332            report_on_exception as u64
2333        });
2334        __bindgen_bitfield_unit.set(5usize, 1u8, {
2335            let pending_interrupt_queue_checked: u32 =
2336                unsafe { ::std::mem::transmute(pending_interrupt_queue_checked) };
2337            pending_interrupt_queue_checked as u64
2338        });
2339        __bindgen_bitfield_unit
2340    }
2341}
2342pub type rb_thread_t = rb_thread_struct;
2343#[repr(C)]
2344#[derive(Debug, Copy, Clone)]
2345pub struct rb_trace_arg_struct {
2346    pub event: rb_event_flag_t,
2347    pub ec: *mut rb_execution_context_t,
2348    pub cfp: *const rb_control_frame_t,
2349    pub self_: VALUE,
2350    pub id: ID,
2351    pub called_id: ID,
2352    pub klass: VALUE,
2353    pub data: VALUE,
2354    pub klass_solved: ::std::os::raw::c_int,
2355    pub lineno: ::std::os::raw::c_int,
2356    pub path: VALUE,
2357}
2358#[repr(C)]
2359#[derive(Debug, Copy, Clone)]
2360pub struct iseq_compile_data {
2361    pub err_info: VALUE,
2362    pub mark_ary: VALUE,
2363    pub catch_table_ary: VALUE,
2364    pub start_label: *mut iseq_label_data,
2365    pub end_label: *mut iseq_label_data,
2366    pub redo_label: *mut iseq_label_data,
2367    pub current_block: *const rb_iseq_t,
2368    pub ensure_node: VALUE,
2369    pub for_iseq: VALUE,
2370    pub ensure_node_stack: *mut iseq_compile_data_ensure_node_stack,
2371    pub storage_head: *mut iseq_compile_data_storage,
2372    pub storage_current: *mut iseq_compile_data_storage,
2373    pub loopval_popped: ::std::os::raw::c_int,
2374    pub last_line: ::std::os::raw::c_int,
2375    pub label_no: ::std::os::raw::c_int,
2376    pub node_level: ::std::os::raw::c_int,
2377    pub ci_index: ::std::os::raw::c_uint,
2378    pub ci_kw_index: ::std::os::raw::c_uint,
2379    pub option: *const rb_compile_option_t,
2380    pub ivar_cache_table: *mut rb_id_table,
2381}
2382#[repr(C)]
2383#[derive(Debug, Copy, Clone)]
2384pub struct rb_compile_option_struct {
2385    pub _bitfield_align_1: [u8; 0],
2386    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
2387    pub debug_level: ::std::os::raw::c_int,
2388}
2389impl rb_compile_option_struct {
2390    #[inline]
2391    pub fn inline_const_cache(&self) -> ::std::os::raw::c_uint {
2392        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
2393    }
2394    #[inline]
2395    pub fn set_inline_const_cache(&mut self, val: ::std::os::raw::c_uint) {
2396        unsafe {
2397            let val: u32 = ::std::mem::transmute(val);
2398            self._bitfield_1.set(0usize, 1u8, val as u64)
2399        }
2400    }
2401    #[inline]
2402    pub unsafe fn inline_const_cache_raw(this: *const Self) -> ::std::os::raw::c_uint {
2403        unsafe {
2404            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2405                ::std::ptr::addr_of!((*this)._bitfield_1),
2406                0usize,
2407                1u8,
2408            ) as u32)
2409        }
2410    }
2411    #[inline]
2412    pub unsafe fn set_inline_const_cache_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2413        unsafe {
2414            let val: u32 = ::std::mem::transmute(val);
2415            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2416                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2417                0usize,
2418                1u8,
2419                val as u64,
2420            )
2421        }
2422    }
2423    #[inline]
2424    pub fn peephole_optimization(&self) -> ::std::os::raw::c_uint {
2425        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
2426    }
2427    #[inline]
2428    pub fn set_peephole_optimization(&mut self, val: ::std::os::raw::c_uint) {
2429        unsafe {
2430            let val: u32 = ::std::mem::transmute(val);
2431            self._bitfield_1.set(1usize, 1u8, val as u64)
2432        }
2433    }
2434    #[inline]
2435    pub unsafe fn peephole_optimization_raw(this: *const Self) -> ::std::os::raw::c_uint {
2436        unsafe {
2437            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2438                ::std::ptr::addr_of!((*this)._bitfield_1),
2439                1usize,
2440                1u8,
2441            ) as u32)
2442        }
2443    }
2444    #[inline]
2445    pub unsafe fn set_peephole_optimization_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2446        unsafe {
2447            let val: u32 = ::std::mem::transmute(val);
2448            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2449                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2450                1usize,
2451                1u8,
2452                val as u64,
2453            )
2454        }
2455    }
2456    #[inline]
2457    pub fn tailcall_optimization(&self) -> ::std::os::raw::c_uint {
2458        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
2459    }
2460    #[inline]
2461    pub fn set_tailcall_optimization(&mut self, val: ::std::os::raw::c_uint) {
2462        unsafe {
2463            let val: u32 = ::std::mem::transmute(val);
2464            self._bitfield_1.set(2usize, 1u8, val as u64)
2465        }
2466    }
2467    #[inline]
2468    pub unsafe fn tailcall_optimization_raw(this: *const Self) -> ::std::os::raw::c_uint {
2469        unsafe {
2470            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2471                ::std::ptr::addr_of!((*this)._bitfield_1),
2472                2usize,
2473                1u8,
2474            ) as u32)
2475        }
2476    }
2477    #[inline]
2478    pub unsafe fn set_tailcall_optimization_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2479        unsafe {
2480            let val: u32 = ::std::mem::transmute(val);
2481            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2482                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2483                2usize,
2484                1u8,
2485                val as u64,
2486            )
2487        }
2488    }
2489    #[inline]
2490    pub fn specialized_instruction(&self) -> ::std::os::raw::c_uint {
2491        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
2492    }
2493    #[inline]
2494    pub fn set_specialized_instruction(&mut self, val: ::std::os::raw::c_uint) {
2495        unsafe {
2496            let val: u32 = ::std::mem::transmute(val);
2497            self._bitfield_1.set(3usize, 1u8, val as u64)
2498        }
2499    }
2500    #[inline]
2501    pub unsafe fn specialized_instruction_raw(this: *const Self) -> ::std::os::raw::c_uint {
2502        unsafe {
2503            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2504                ::std::ptr::addr_of!((*this)._bitfield_1),
2505                3usize,
2506                1u8,
2507            ) as u32)
2508        }
2509    }
2510    #[inline]
2511    pub unsafe fn set_specialized_instruction_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2512        unsafe {
2513            let val: u32 = ::std::mem::transmute(val);
2514            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2515                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2516                3usize,
2517                1u8,
2518                val as u64,
2519            )
2520        }
2521    }
2522    #[inline]
2523    pub fn operands_unification(&self) -> ::std::os::raw::c_uint {
2524        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
2525    }
2526    #[inline]
2527    pub fn set_operands_unification(&mut self, val: ::std::os::raw::c_uint) {
2528        unsafe {
2529            let val: u32 = ::std::mem::transmute(val);
2530            self._bitfield_1.set(4usize, 1u8, val as u64)
2531        }
2532    }
2533    #[inline]
2534    pub unsafe fn operands_unification_raw(this: *const Self) -> ::std::os::raw::c_uint {
2535        unsafe {
2536            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2537                ::std::ptr::addr_of!((*this)._bitfield_1),
2538                4usize,
2539                1u8,
2540            ) as u32)
2541        }
2542    }
2543    #[inline]
2544    pub unsafe fn set_operands_unification_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2545        unsafe {
2546            let val: u32 = ::std::mem::transmute(val);
2547            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2548                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2549                4usize,
2550                1u8,
2551                val as u64,
2552            )
2553        }
2554    }
2555    #[inline]
2556    pub fn instructions_unification(&self) -> ::std::os::raw::c_uint {
2557        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
2558    }
2559    #[inline]
2560    pub fn set_instructions_unification(&mut self, val: ::std::os::raw::c_uint) {
2561        unsafe {
2562            let val: u32 = ::std::mem::transmute(val);
2563            self._bitfield_1.set(5usize, 1u8, val as u64)
2564        }
2565    }
2566    #[inline]
2567    pub unsafe fn instructions_unification_raw(this: *const Self) -> ::std::os::raw::c_uint {
2568        unsafe {
2569            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2570                ::std::ptr::addr_of!((*this)._bitfield_1),
2571                5usize,
2572                1u8,
2573            ) as u32)
2574        }
2575    }
2576    #[inline]
2577    pub unsafe fn set_instructions_unification_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2578        unsafe {
2579            let val: u32 = ::std::mem::transmute(val);
2580            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2581                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2582                5usize,
2583                1u8,
2584                val as u64,
2585            )
2586        }
2587    }
2588    #[inline]
2589    pub fn stack_caching(&self) -> ::std::os::raw::c_uint {
2590        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
2591    }
2592    #[inline]
2593    pub fn set_stack_caching(&mut self, val: ::std::os::raw::c_uint) {
2594        unsafe {
2595            let val: u32 = ::std::mem::transmute(val);
2596            self._bitfield_1.set(6usize, 1u8, val as u64)
2597        }
2598    }
2599    #[inline]
2600    pub unsafe fn stack_caching_raw(this: *const Self) -> ::std::os::raw::c_uint {
2601        unsafe {
2602            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2603                ::std::ptr::addr_of!((*this)._bitfield_1),
2604                6usize,
2605                1u8,
2606            ) as u32)
2607        }
2608    }
2609    #[inline]
2610    pub unsafe fn set_stack_caching_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2611        unsafe {
2612            let val: u32 = ::std::mem::transmute(val);
2613            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2614                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2615                6usize,
2616                1u8,
2617                val as u64,
2618            )
2619        }
2620    }
2621    #[inline]
2622    pub fn frozen_string_literal(&self) -> ::std::os::raw::c_uint {
2623        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
2624    }
2625    #[inline]
2626    pub fn set_frozen_string_literal(&mut self, val: ::std::os::raw::c_uint) {
2627        unsafe {
2628            let val: u32 = ::std::mem::transmute(val);
2629            self._bitfield_1.set(7usize, 1u8, val as u64)
2630        }
2631    }
2632    #[inline]
2633    pub unsafe fn frozen_string_literal_raw(this: *const Self) -> ::std::os::raw::c_uint {
2634        unsafe {
2635            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2636                ::std::ptr::addr_of!((*this)._bitfield_1),
2637                7usize,
2638                1u8,
2639            ) as u32)
2640        }
2641    }
2642    #[inline]
2643    pub unsafe fn set_frozen_string_literal_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2644        unsafe {
2645            let val: u32 = ::std::mem::transmute(val);
2646            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2647                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2648                7usize,
2649                1u8,
2650                val as u64,
2651            )
2652        }
2653    }
2654    #[inline]
2655    pub fn debug_frozen_string_literal(&self) -> ::std::os::raw::c_uint {
2656        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
2657    }
2658    #[inline]
2659    pub fn set_debug_frozen_string_literal(&mut self, val: ::std::os::raw::c_uint) {
2660        unsafe {
2661            let val: u32 = ::std::mem::transmute(val);
2662            self._bitfield_1.set(8usize, 1u8, val as u64)
2663        }
2664    }
2665    #[inline]
2666    pub unsafe fn debug_frozen_string_literal_raw(this: *const Self) -> ::std::os::raw::c_uint {
2667        unsafe {
2668            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2669                ::std::ptr::addr_of!((*this)._bitfield_1),
2670                8usize,
2671                1u8,
2672            ) as u32)
2673        }
2674    }
2675    #[inline]
2676    pub unsafe fn set_debug_frozen_string_literal_raw(
2677        this: *mut Self,
2678        val: ::std::os::raw::c_uint,
2679    ) {
2680        unsafe {
2681            let val: u32 = ::std::mem::transmute(val);
2682            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2683                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2684                8usize,
2685                1u8,
2686                val as u64,
2687            )
2688        }
2689    }
2690    #[inline]
2691    pub fn coverage_enabled(&self) -> ::std::os::raw::c_uint {
2692        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
2693    }
2694    #[inline]
2695    pub fn set_coverage_enabled(&mut self, val: ::std::os::raw::c_uint) {
2696        unsafe {
2697            let val: u32 = ::std::mem::transmute(val);
2698            self._bitfield_1.set(9usize, 1u8, val as u64)
2699        }
2700    }
2701    #[inline]
2702    pub unsafe fn coverage_enabled_raw(this: *const Self) -> ::std::os::raw::c_uint {
2703        unsafe {
2704            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
2705                ::std::ptr::addr_of!((*this)._bitfield_1),
2706                9usize,
2707                1u8,
2708            ) as u32)
2709        }
2710    }
2711    #[inline]
2712    pub unsafe fn set_coverage_enabled_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2713        unsafe {
2714            let val: u32 = ::std::mem::transmute(val);
2715            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
2716                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2717                9usize,
2718                1u8,
2719                val as u64,
2720            )
2721        }
2722    }
2723    #[inline]
2724    pub fn new_bitfield_1(
2725        inline_const_cache: ::std::os::raw::c_uint,
2726        peephole_optimization: ::std::os::raw::c_uint,
2727        tailcall_optimization: ::std::os::raw::c_uint,
2728        specialized_instruction: ::std::os::raw::c_uint,
2729        operands_unification: ::std::os::raw::c_uint,
2730        instructions_unification: ::std::os::raw::c_uint,
2731        stack_caching: ::std::os::raw::c_uint,
2732        frozen_string_literal: ::std::os::raw::c_uint,
2733        debug_frozen_string_literal: ::std::os::raw::c_uint,
2734        coverage_enabled: ::std::os::raw::c_uint,
2735    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
2736        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
2737        __bindgen_bitfield_unit.set(0usize, 1u8, {
2738            let inline_const_cache: u32 = unsafe { ::std::mem::transmute(inline_const_cache) };
2739            inline_const_cache as u64
2740        });
2741        __bindgen_bitfield_unit.set(1usize, 1u8, {
2742            let peephole_optimization: u32 =
2743                unsafe { ::std::mem::transmute(peephole_optimization) };
2744            peephole_optimization as u64
2745        });
2746        __bindgen_bitfield_unit.set(2usize, 1u8, {
2747            let tailcall_optimization: u32 =
2748                unsafe { ::std::mem::transmute(tailcall_optimization) };
2749            tailcall_optimization as u64
2750        });
2751        __bindgen_bitfield_unit.set(3usize, 1u8, {
2752            let specialized_instruction: u32 =
2753                unsafe { ::std::mem::transmute(specialized_instruction) };
2754            specialized_instruction as u64
2755        });
2756        __bindgen_bitfield_unit.set(4usize, 1u8, {
2757            let operands_unification: u32 = unsafe { ::std::mem::transmute(operands_unification) };
2758            operands_unification as u64
2759        });
2760        __bindgen_bitfield_unit.set(5usize, 1u8, {
2761            let instructions_unification: u32 =
2762                unsafe { ::std::mem::transmute(instructions_unification) };
2763            instructions_unification as u64
2764        });
2765        __bindgen_bitfield_unit.set(6usize, 1u8, {
2766            let stack_caching: u32 = unsafe { ::std::mem::transmute(stack_caching) };
2767            stack_caching as u64
2768        });
2769        __bindgen_bitfield_unit.set(7usize, 1u8, {
2770            let frozen_string_literal: u32 =
2771                unsafe { ::std::mem::transmute(frozen_string_literal) };
2772            frozen_string_literal as u64
2773        });
2774        __bindgen_bitfield_unit.set(8usize, 1u8, {
2775            let debug_frozen_string_literal: u32 =
2776                unsafe { ::std::mem::transmute(debug_frozen_string_literal) };
2777            debug_frozen_string_literal as u64
2778        });
2779        __bindgen_bitfield_unit.set(9usize, 1u8, {
2780            let coverage_enabled: u32 = unsafe { ::std::mem::transmute(coverage_enabled) };
2781            coverage_enabled as u64
2782        });
2783        __bindgen_bitfield_unit
2784    }
2785}
2786#[repr(C)]
2787#[derive(Debug, Copy, Clone)]
2788pub struct iseq_insn_info_entry {
2789    pub line_no: ::std::os::raw::c_int,
2790    pub events: rb_event_flag_t,
2791}
2792#[repr(C)]
2793#[derive(Debug, Copy, Clone)]
2794pub struct iseq_catch_table_entry {
2795    pub type_: iseq_catch_table_entry_catch_type,
2796    pub iseq: *const rb_iseq_t,
2797    pub start: ::std::os::raw::c_uint,
2798    pub end: ::std::os::raw::c_uint,
2799    pub cont: ::std::os::raw::c_uint,
2800    pub sp: ::std::os::raw::c_uint,
2801}
2802pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RESCUE: iseq_catch_table_entry_catch_type =
2803    3;
2804pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_ENSURE: iseq_catch_table_entry_catch_type =
2805    5;
2806pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RETRY: iseq_catch_table_entry_catch_type = 7;
2807pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_BREAK: iseq_catch_table_entry_catch_type = 9;
2808pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_REDO: iseq_catch_table_entry_catch_type = 11;
2809pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_NEXT: iseq_catch_table_entry_catch_type = 13;
2810pub type iseq_catch_table_entry_catch_type = ::std::os::raw::c_uint;
2811#[repr(C, packed)]
2812pub struct iseq_catch_table {
2813    pub size: ::std::os::raw::c_uint,
2814    pub entries: __IncompleteArrayField<iseq_catch_table_entry>,
2815}
2816#[repr(C)]
2817#[derive(Debug)]
2818pub struct iseq_compile_data_storage {
2819    pub next: *mut iseq_compile_data_storage,
2820    pub pos: ::std::os::raw::c_uint,
2821    pub size: ::std::os::raw::c_uint,
2822    pub buff: __IncompleteArrayField<::std::os::raw::c_char>,
2823}
2824#[repr(C)]
2825#[derive(Debug, Copy, Clone)]
2826pub struct rb_id_table {
2827    pub _address: u8,
2828}
2829#[repr(C)]
2830#[derive(Debug, Copy, Clone)]
2831pub struct succ_index_table {
2832    pub _address: u8,
2833}
2834#[repr(C)]
2835#[derive(Debug, Copy, Clone)]
2836pub struct rb_event_hook_struct {
2837    pub _address: u8,
2838}
2839#[repr(C)]
2840#[derive(Debug, Copy, Clone)]
2841pub struct rb_postponed_job_struct {
2842    pub _address: u8,
2843}
2844#[repr(C)]
2845#[derive(Debug, Copy, Clone)]
2846pub struct iseq_label_data {
2847    pub _address: u8,
2848}
2849#[repr(C)]
2850#[derive(Debug, Copy, Clone)]
2851pub struct iseq_compile_data_ensure_node_stack {
2852    pub _address: u8,
2853}