rbspy_ruby_structs/
ruby_2_6_8.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}
669#[repr(C)]
670#[derive(Debug, Copy, Clone)]
671pub struct rb_fiber_struct {
672    _unused: [u8; 0],
673}
674pub const rb_method_visibility_t_METHOD_VISI_UNDEF: rb_method_visibility_t = 0;
675pub const rb_method_visibility_t_METHOD_VISI_PUBLIC: rb_method_visibility_t = 1;
676pub const rb_method_visibility_t_METHOD_VISI_PRIVATE: rb_method_visibility_t = 2;
677pub const rb_method_visibility_t_METHOD_VISI_PROTECTED: rb_method_visibility_t = 3;
678pub const rb_method_visibility_t_METHOD_VISI_MASK: rb_method_visibility_t = 3;
679pub type rb_method_visibility_t = ::std::os::raw::c_uint;
680#[repr(C)]
681#[repr(align(4))]
682#[derive(Debug, Copy, Clone)]
683pub struct rb_scope_visi_struct {
684    pub _bitfield_align_1: [u8; 0],
685    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
686    pub __bindgen_padding_0: [u8; 3usize],
687}
688impl rb_scope_visi_struct {
689    #[inline]
690    pub fn method_visi(&self) -> rb_method_visibility_t {
691        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
692    }
693    #[inline]
694    pub fn set_method_visi(&mut self, val: rb_method_visibility_t) {
695        unsafe {
696            let val: u32 = ::std::mem::transmute(val);
697            self._bitfield_1.set(0usize, 3u8, val as u64)
698        }
699    }
700    #[inline]
701    pub unsafe fn method_visi_raw(this: *const Self) -> rb_method_visibility_t {
702        unsafe {
703            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
704                ::std::ptr::addr_of!((*this)._bitfield_1),
705                0usize,
706                3u8,
707            ) as u32)
708        }
709    }
710    #[inline]
711    pub unsafe fn set_method_visi_raw(this: *mut Self, val: rb_method_visibility_t) {
712        unsafe {
713            let val: u32 = ::std::mem::transmute(val);
714            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
715                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
716                0usize,
717                3u8,
718                val as u64,
719            )
720        }
721    }
722    #[inline]
723    pub fn module_func(&self) -> ::std::os::raw::c_uint {
724        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
725    }
726    #[inline]
727    pub fn set_module_func(&mut self, val: ::std::os::raw::c_uint) {
728        unsafe {
729            let val: u32 = ::std::mem::transmute(val);
730            self._bitfield_1.set(3usize, 1u8, val as u64)
731        }
732    }
733    #[inline]
734    pub unsafe fn module_func_raw(this: *const Self) -> ::std::os::raw::c_uint {
735        unsafe {
736            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
737                ::std::ptr::addr_of!((*this)._bitfield_1),
738                3usize,
739                1u8,
740            ) as u32)
741        }
742    }
743    #[inline]
744    pub unsafe fn set_module_func_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
745        unsafe {
746            let val: u32 = ::std::mem::transmute(val);
747            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
748                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
749                3usize,
750                1u8,
751                val as u64,
752            )
753        }
754    }
755    #[inline]
756    pub fn new_bitfield_1(
757        method_visi: rb_method_visibility_t,
758        module_func: ::std::os::raw::c_uint,
759    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
760        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
761        __bindgen_bitfield_unit.set(0usize, 3u8, {
762            let method_visi: u32 = unsafe { ::std::mem::transmute(method_visi) };
763            method_visi as u64
764        });
765        __bindgen_bitfield_unit.set(3usize, 1u8, {
766            let module_func: u32 = unsafe { ::std::mem::transmute(module_func) };
767            module_func as u64
768        });
769        __bindgen_bitfield_unit
770    }
771}
772pub type rb_scope_visibility_t = rb_scope_visi_struct;
773#[repr(C)]
774#[derive(Debug, Copy, Clone)]
775pub struct rb_cref_struct {
776    pub flags: VALUE,
777    pub refinements: VALUE,
778    pub klass: VALUE,
779    pub next: *mut rb_cref_struct,
780    pub scope_visi: rb_scope_visibility_t,
781}
782pub type rb_cref_t = rb_cref_struct;
783#[repr(C)]
784#[derive(Debug, Copy, Clone)]
785pub struct rb_method_entry_struct {
786    pub flags: VALUE,
787    pub defined_class: VALUE,
788    pub def: *mut rb_method_definition_struct,
789    pub called_id: ID,
790    pub owner: VALUE,
791}
792#[repr(C)]
793#[derive(Debug, Copy, Clone)]
794pub struct rb_callable_method_entry_struct {
795    pub flags: VALUE,
796    pub defined_class: VALUE,
797    pub def: *mut rb_method_definition_struct,
798    pub called_id: ID,
799    pub owner: VALUE,
800}
801pub type rb_callable_method_entry_t = rb_callable_method_entry_struct;
802pub const rb_method_type_t_VM_METHOD_TYPE_ISEQ: rb_method_type_t = 0;
803pub const rb_method_type_t_VM_METHOD_TYPE_CFUNC: rb_method_type_t = 1;
804pub const rb_method_type_t_VM_METHOD_TYPE_ATTRSET: rb_method_type_t = 2;
805pub const rb_method_type_t_VM_METHOD_TYPE_IVAR: rb_method_type_t = 3;
806pub const rb_method_type_t_VM_METHOD_TYPE_BMETHOD: rb_method_type_t = 4;
807pub const rb_method_type_t_VM_METHOD_TYPE_ZSUPER: rb_method_type_t = 5;
808pub const rb_method_type_t_VM_METHOD_TYPE_ALIAS: rb_method_type_t = 6;
809pub const rb_method_type_t_VM_METHOD_TYPE_UNDEF: rb_method_type_t = 7;
810pub const rb_method_type_t_VM_METHOD_TYPE_NOTIMPLEMENTED: rb_method_type_t = 8;
811pub const rb_method_type_t_VM_METHOD_TYPE_OPTIMIZED: rb_method_type_t = 9;
812pub const rb_method_type_t_VM_METHOD_TYPE_MISSING: rb_method_type_t = 10;
813pub const rb_method_type_t_VM_METHOD_TYPE_REFINED: rb_method_type_t = 11;
814pub type rb_method_type_t = ::std::os::raw::c_uint;
815pub type rb_iseq_t = rb_iseq_struct;
816#[repr(C)]
817#[derive(Debug, Copy, Clone)]
818pub struct rb_method_iseq_struct {
819    pub iseqptr: *const rb_iseq_t,
820    pub cref: *mut rb_cref_t,
821}
822pub type rb_method_iseq_t = rb_method_iseq_struct;
823#[repr(C)]
824#[derive(Debug, Copy, Clone)]
825pub struct rb_method_cfunc_struct {
826    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
827    pub invoker: ::std::option::Option<
828        unsafe extern "C" fn(
829            func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
830            recv: VALUE,
831            argc: ::std::os::raw::c_int,
832            argv: *const VALUE,
833        ) -> VALUE,
834    >,
835    pub argc: ::std::os::raw::c_int,
836}
837pub type rb_method_cfunc_t = rb_method_cfunc_struct;
838#[repr(C)]
839#[derive(Debug, Copy, Clone)]
840pub struct rb_method_attr_struct {
841    pub id: ID,
842    pub location: VALUE,
843}
844pub type rb_method_attr_t = rb_method_attr_struct;
845#[repr(C)]
846#[derive(Debug, Copy, Clone)]
847pub struct rb_method_alias_struct {
848    pub original_me: *const rb_method_entry_struct,
849}
850pub type rb_method_alias_t = rb_method_alias_struct;
851#[repr(C)]
852#[derive(Debug, Copy, Clone)]
853pub struct rb_method_refined_struct {
854    pub orig_me: *const rb_method_entry_struct,
855    pub owner: VALUE,
856}
857pub type rb_method_refined_t = rb_method_refined_struct;
858#[repr(C)]
859#[derive(Debug, Copy, Clone)]
860pub struct rb_method_bmethod_struct {
861    pub proc_: VALUE,
862    pub hooks: *mut rb_hook_list_struct,
863}
864pub type rb_method_bmethod_t = rb_method_bmethod_struct;
865pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_SEND: method_optimized_type = 0;
866pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_CALL: method_optimized_type = 1;
867pub const method_optimized_type_OPTIMIZED_METHOD_TYPE_BLOCK_CALL: method_optimized_type = 2;
868pub const method_optimized_type_OPTIMIZED_METHOD_TYPE__MAX: method_optimized_type = 3;
869pub type method_optimized_type = ::std::os::raw::c_uint;
870#[repr(C, packed)]
871#[derive(Copy, Clone)]
872pub struct rb_method_definition_struct {
873    pub _bitfield_align_1: [u8; 0],
874    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
875    pub body: rb_method_definition_struct__bindgen_ty_1,
876    pub original_id: ID,
877}
878#[repr(C)]
879#[derive(Copy, Clone)]
880pub union rb_method_definition_struct__bindgen_ty_1 {
881    pub iseq: rb_method_iseq_t,
882    pub cfunc: rb_method_cfunc_t,
883    pub attr: rb_method_attr_t,
884    pub alias: rb_method_alias_t,
885    pub refined: rb_method_refined_t,
886    pub bmethod: rb_method_bmethod_t,
887    pub optimize_type: method_optimized_type,
888}
889impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
890    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
891        write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
892    }
893}
894impl rb_method_definition_struct {
895    #[inline]
896    pub fn type_(&self) -> rb_method_type_t {
897        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
898    }
899    #[inline]
900    pub fn set_type(&mut self, val: rb_method_type_t) {
901        unsafe {
902            let val: u32 = ::std::mem::transmute(val);
903            self._bitfield_1.set(0usize, 4u8, val as u64)
904        }
905    }
906    #[inline]
907    pub unsafe fn type__raw(this: *const Self) -> rb_method_type_t {
908        unsafe {
909            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
910                ::std::ptr::addr_of!((*this)._bitfield_1),
911                0usize,
912                4u8,
913            ) as u32)
914        }
915    }
916    #[inline]
917    pub unsafe fn set_type_raw(this: *mut Self, val: rb_method_type_t) {
918        unsafe {
919            let val: u32 = ::std::mem::transmute(val);
920            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
921                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
922                0usize,
923                4u8,
924                val as u64,
925            )
926        }
927    }
928    #[inline]
929    pub fn alias_count(&self) -> ::std::os::raw::c_int {
930        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
931    }
932    #[inline]
933    pub fn set_alias_count(&mut self, val: ::std::os::raw::c_int) {
934        unsafe {
935            let val: u32 = ::std::mem::transmute(val);
936            self._bitfield_1.set(4usize, 28u8, val as u64)
937        }
938    }
939    #[inline]
940    pub unsafe fn alias_count_raw(this: *const Self) -> ::std::os::raw::c_int {
941        unsafe {
942            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
943                ::std::ptr::addr_of!((*this)._bitfield_1),
944                4usize,
945                28u8,
946            ) as u32)
947        }
948    }
949    #[inline]
950    pub unsafe fn set_alias_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
951        unsafe {
952            let val: u32 = ::std::mem::transmute(val);
953            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
954                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
955                4usize,
956                28u8,
957                val as u64,
958            )
959        }
960    }
961    #[inline]
962    pub fn complemented_count(&self) -> ::std::os::raw::c_int {
963        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 28u8) as u32) }
964    }
965    #[inline]
966    pub fn set_complemented_count(&mut self, val: ::std::os::raw::c_int) {
967        unsafe {
968            let val: u32 = ::std::mem::transmute(val);
969            self._bitfield_1.set(32usize, 28u8, val as u64)
970        }
971    }
972    #[inline]
973    pub unsafe fn complemented_count_raw(this: *const Self) -> ::std::os::raw::c_int {
974        unsafe {
975            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
976                ::std::ptr::addr_of!((*this)._bitfield_1),
977                32usize,
978                28u8,
979            ) as u32)
980        }
981    }
982    #[inline]
983    pub unsafe fn set_complemented_count_raw(this: *mut Self, val: ::std::os::raw::c_int) {
984        unsafe {
985            let val: u32 = ::std::mem::transmute(val);
986            <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
987                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
988                32usize,
989                28u8,
990                val as u64,
991            )
992        }
993    }
994    #[inline]
995    pub fn new_bitfield_1(
996        type_: rb_method_type_t,
997        alias_count: ::std::os::raw::c_int,
998        complemented_count: ::std::os::raw::c_int,
999    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
1000        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
1001        __bindgen_bitfield_unit.set(0usize, 4u8, {
1002            let type_: u32 = unsafe { ::std::mem::transmute(type_) };
1003            type_ as u64
1004        });
1005        __bindgen_bitfield_unit.set(4usize, 28u8, {
1006            let alias_count: u32 = unsafe { ::std::mem::transmute(alias_count) };
1007            alias_count as u64
1008        });
1009        __bindgen_bitfield_unit.set(32usize, 28u8, {
1010            let complemented_count: u32 = unsafe { ::std::mem::transmute(complemented_count) };
1011            complemented_count as u64
1012        });
1013        __bindgen_bitfield_unit
1014    }
1015}
1016pub type rb_atomic_t = ::std::os::raw::c_uint;
1017#[repr(C)]
1018#[derive(Debug, Copy, Clone)]
1019pub struct list_node {
1020    pub next: *mut list_node,
1021    pub prev: *mut list_node,
1022}
1023#[repr(C)]
1024#[derive(Debug, Copy, Clone)]
1025pub struct list_head {
1026    pub n: list_node,
1027}
1028pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
1029pub type rb_nativethread_id_t = pthread_t;
1030pub type rb_nativethread_lock_t = pthread_mutex_t;
1031pub type rb_nativethread_cond_t = pthread_cond_t;
1032#[repr(C)]
1033#[derive(Copy, Clone)]
1034pub struct native_thread_data_struct {
1035    pub node: native_thread_data_struct__bindgen_ty_1,
1036    pub cond: native_thread_data_struct__bindgen_ty_2,
1037}
1038#[repr(C)]
1039#[derive(Copy, Clone)]
1040pub union native_thread_data_struct__bindgen_ty_1 {
1041    pub ubf: list_node,
1042    pub gvl: list_node,
1043}
1044impl ::std::fmt::Debug for native_thread_data_struct__bindgen_ty_1 {
1045    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1046        write!(f, "native_thread_data_struct__bindgen_ty_1 {{ union }}")
1047    }
1048}
1049#[repr(C)]
1050#[derive(Copy, Clone)]
1051pub union native_thread_data_struct__bindgen_ty_2 {
1052    pub intr: rb_nativethread_cond_t,
1053    pub gvlq: rb_nativethread_cond_t,
1054}
1055impl ::std::fmt::Debug for native_thread_data_struct__bindgen_ty_2 {
1056    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1057        write!(f, "native_thread_data_struct__bindgen_ty_2 {{ union }}")
1058    }
1059}
1060impl ::std::fmt::Debug for native_thread_data_struct {
1061    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1062        write!(
1063            f,
1064            "native_thread_data_struct {{ node: {:?}, cond: {:?} }}",
1065            self.node, self.cond
1066        )
1067    }
1068}
1069pub type native_thread_data_t = native_thread_data_struct;
1070#[repr(C)]
1071#[derive(Copy, Clone)]
1072pub struct rb_global_vm_lock_struct {
1073    pub owner: *const rb_thread_struct,
1074    pub lock: rb_nativethread_lock_t,
1075    pub waitq: list_head,
1076    pub timer: *const rb_thread_struct,
1077    pub timer_err: ::std::os::raw::c_int,
1078    pub switch_cond: rb_nativethread_cond_t,
1079    pub switch_wait_cond: rb_nativethread_cond_t,
1080    pub need_yield: ::std::os::raw::c_int,
1081    pub wait_yield: ::std::os::raw::c_int,
1082}
1083impl ::std::fmt::Debug for rb_global_vm_lock_struct {
1084    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1085        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)
1086    }
1087}
1088pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
1089#[repr(C)]
1090#[derive(Debug, Copy, Clone)]
1091pub struct __jmp_buf_tag {
1092    pub __jmpbuf: __jmp_buf,
1093    pub __mask_was_saved: ::std::os::raw::c_int,
1094    pub __saved_mask: __sigset_t,
1095}
1096pub type jmp_buf = [__jmp_buf_tag; 1usize];
1097pub type rb_snum_t = ::std::os::raw::c_long;
1098pub const ruby_tag_type_RUBY_TAG_NONE: ruby_tag_type = 0;
1099pub const ruby_tag_type_RUBY_TAG_RETURN: ruby_tag_type = 1;
1100pub const ruby_tag_type_RUBY_TAG_BREAK: ruby_tag_type = 2;
1101pub const ruby_tag_type_RUBY_TAG_NEXT: ruby_tag_type = 3;
1102pub const ruby_tag_type_RUBY_TAG_RETRY: ruby_tag_type = 4;
1103pub const ruby_tag_type_RUBY_TAG_REDO: ruby_tag_type = 5;
1104pub const ruby_tag_type_RUBY_TAG_RAISE: ruby_tag_type = 6;
1105pub const ruby_tag_type_RUBY_TAG_THROW: ruby_tag_type = 7;
1106pub const ruby_tag_type_RUBY_TAG_FATAL: ruby_tag_type = 8;
1107pub const ruby_tag_type_RUBY_TAG_MASK: ruby_tag_type = 15;
1108pub type ruby_tag_type = ::std::os::raw::c_uint;
1109pub type rb_compile_option_t = rb_compile_option_struct;
1110#[repr(C)]
1111#[derive(Copy, Clone)]
1112pub struct iseq_inline_cache_entry {
1113    pub ic_serial: rb_serial_t,
1114    pub ic_cref: *const rb_cref_t,
1115    pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
1116}
1117#[repr(C)]
1118#[derive(Copy, Clone)]
1119pub union iseq_inline_cache_entry__bindgen_ty_1 {
1120    pub index: usize,
1121    pub value: VALUE,
1122}
1123impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
1124    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1125        write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
1126    }
1127}
1128impl ::std::fmt::Debug for iseq_inline_cache_entry {
1129    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1130        write!(
1131            f,
1132            "iseq_inline_cache_entry {{ ic_serial: {:?}, ic_cref: {:?}, ic_value: {:?} }}",
1133            self.ic_serial, self.ic_cref, self.ic_value
1134        )
1135    }
1136}
1137#[repr(C)]
1138#[derive(Copy, Clone)]
1139pub union iseq_inline_storage_entry {
1140    pub once: iseq_inline_storage_entry__bindgen_ty_1,
1141    pub cache: iseq_inline_cache_entry,
1142}
1143#[repr(C)]
1144#[derive(Debug, Copy, Clone)]
1145pub struct iseq_inline_storage_entry__bindgen_ty_1 {
1146    pub running_thread: *mut rb_thread_struct,
1147    pub value: VALUE,
1148}
1149impl ::std::fmt::Debug for iseq_inline_storage_entry {
1150    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1151        write!(f, "iseq_inline_storage_entry {{ union }}")
1152    }
1153}
1154pub const method_missing_reason_MISSING_NOENTRY: method_missing_reason = 0;
1155pub const method_missing_reason_MISSING_PRIVATE: method_missing_reason = 1;
1156pub const method_missing_reason_MISSING_PROTECTED: method_missing_reason = 2;
1157pub const method_missing_reason_MISSING_FCALL: method_missing_reason = 4;
1158pub const method_missing_reason_MISSING_VCALL: method_missing_reason = 8;
1159pub const method_missing_reason_MISSING_SUPER: method_missing_reason = 16;
1160pub const method_missing_reason_MISSING_MISSING: method_missing_reason = 32;
1161pub const method_missing_reason_MISSING_NONE: method_missing_reason = 64;
1162pub type method_missing_reason = ::std::os::raw::c_uint;
1163#[repr(C)]
1164#[derive(Debug, Copy, Clone)]
1165pub struct rb_call_info {
1166    pub mid: ID,
1167    pub flag: ::std::os::raw::c_uint,
1168    pub orig_argc: ::std::os::raw::c_int,
1169}
1170#[repr(C)]
1171#[derive(Debug, Copy, Clone)]
1172pub struct rb_calling_info {
1173    pub block_handler: VALUE,
1174    pub recv: VALUE,
1175    pub argc: ::std::os::raw::c_int,
1176}
1177pub type vm_call_handler = ::std::option::Option<
1178    unsafe extern "C" fn(
1179        ec: *mut rb_execution_context_struct,
1180        cfp: *mut rb_control_frame_struct,
1181        calling: *mut rb_calling_info,
1182        ci: *const rb_call_info,
1183        cc: *mut rb_call_cache,
1184    ) -> VALUE,
1185>;
1186#[repr(C)]
1187#[derive(Copy, Clone)]
1188pub struct rb_call_cache {
1189    pub method_state: rb_serial_t,
1190    pub class_serial: rb_serial_t,
1191    pub me: *const rb_callable_method_entry_t,
1192    pub call: vm_call_handler,
1193    pub aux: rb_call_cache__bindgen_ty_1,
1194}
1195#[repr(C)]
1196#[derive(Copy, Clone)]
1197pub union rb_call_cache__bindgen_ty_1 {
1198    pub index: ::std::os::raw::c_uint,
1199    pub method_missing_reason: method_missing_reason,
1200    pub inc_sp: ::std::os::raw::c_int,
1201}
1202impl ::std::fmt::Debug for rb_call_cache__bindgen_ty_1 {
1203    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1204        write!(f, "rb_call_cache__bindgen_ty_1 {{ union }}")
1205    }
1206}
1207impl ::std::fmt::Debug for rb_call_cache {
1208    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1209        write ! (f , "rb_call_cache {{ method_state: {:?}, class_serial: {:?}, me: {:?}, call: {:?}, aux: {:?} }}" , self . method_state , self . class_serial , self . me , self . call , self . aux)
1210    }
1211}
1212#[repr(C)]
1213#[derive(Debug, Copy, Clone)]
1214pub struct rb_iseq_location_struct {
1215    pub pathobj: VALUE,
1216    pub base_label: VALUE,
1217    pub label: VALUE,
1218    pub first_lineno: VALUE,
1219    pub node_id: ::std::os::raw::c_int,
1220    pub code_location: rb_code_location_t,
1221}
1222pub type rb_iseq_location_t = rb_iseq_location_struct;
1223#[repr(C)]
1224#[derive(Debug, Copy, Clone)]
1225pub struct rb_mjit_unit {
1226    _unused: [u8; 0],
1227}
1228#[repr(C)]
1229#[derive(Debug, Copy, Clone)]
1230pub struct rb_iseq_constant_body {
1231    pub type_: rb_iseq_constant_body_iseq_type,
1232    pub iseq_size: ::std::os::raw::c_uint,
1233    pub iseq_encoded: *const VALUE,
1234    pub param: rb_iseq_constant_body__bindgen_ty_1,
1235    pub location: rb_iseq_location_t,
1236    pub insns_info: rb_iseq_constant_body_iseq_insn_info,
1237    pub local_table: *const ID,
1238    pub catch_table: *const iseq_catch_table,
1239    pub parent_iseq: *const rb_iseq_struct,
1240    pub local_iseq: *mut rb_iseq_struct,
1241    pub is_entries: *mut iseq_inline_storage_entry,
1242    pub ci_entries: *mut rb_call_info,
1243    pub cc_entries: *mut rb_call_cache,
1244    pub variable: rb_iseq_constant_body__bindgen_ty_2,
1245    pub local_table_size: ::std::os::raw::c_uint,
1246    pub is_size: ::std::os::raw::c_uint,
1247    pub ci_size: ::std::os::raw::c_uint,
1248    pub ci_kw_size: ::std::os::raw::c_uint,
1249    pub stack_max: ::std::os::raw::c_uint,
1250    pub jit_func: ::std::option::Option<
1251        unsafe extern "C" fn(
1252            arg1: *mut rb_execution_context_struct,
1253            arg2: *mut rb_control_frame_struct,
1254        ) -> VALUE,
1255    >,
1256    pub total_calls: ::std::os::raw::c_ulong,
1257    pub jit_unit: *mut rb_mjit_unit,
1258    pub catch_except_p: ::std::os::raw::c_char,
1259}
1260pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_TOP: rb_iseq_constant_body_iseq_type = 0;
1261pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_constant_body_iseq_type = 1;
1262pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_constant_body_iseq_type = 2;
1263pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_constant_body_iseq_type = 3;
1264pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_constant_body_iseq_type = 4;
1265pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_constant_body_iseq_type = 5;
1266pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_constant_body_iseq_type = 6;
1267pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_constant_body_iseq_type = 7;
1268pub const rb_iseq_constant_body_iseq_type_ISEQ_TYPE_PLAIN: rb_iseq_constant_body_iseq_type = 8;
1269pub type rb_iseq_constant_body_iseq_type = ::std::os::raw::c_uint;
1270#[repr(C)]
1271#[derive(Debug, Copy, Clone)]
1272pub struct rb_iseq_constant_body__bindgen_ty_1 {
1273    pub flags: rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1,
1274    pub size: ::std::os::raw::c_uint,
1275    pub lead_num: ::std::os::raw::c_int,
1276    pub opt_num: ::std::os::raw::c_int,
1277    pub rest_start: ::std::os::raw::c_int,
1278    pub post_start: ::std::os::raw::c_int,
1279    pub post_num: ::std::os::raw::c_int,
1280    pub block_start: ::std::os::raw::c_int,
1281    pub opt_table: *const VALUE,
1282    pub keyword: *const rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword,
1283}
1284#[repr(C)]
1285#[repr(align(4))]
1286#[derive(Debug, Copy, Clone)]
1287pub struct rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1288    pub _bitfield_align_1: [u8; 0],
1289    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1290    pub __bindgen_padding_0: [u8; 3usize],
1291}
1292impl rb_iseq_constant_body__bindgen_ty_1__bindgen_ty_1 {
1293    #[inline]
1294    pub fn has_lead(&self) -> ::std::os::raw::c_uint {
1295        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1296    }
1297    #[inline]
1298    pub fn set_has_lead(&mut self, val: ::std::os::raw::c_uint) {
1299        unsafe {
1300            let val: u32 = ::std::mem::transmute(val);
1301            self._bitfield_1.set(0usize, 1u8, val as u64)
1302        }
1303    }
1304    #[inline]
1305    pub unsafe fn has_lead_raw(this: *const Self) -> ::std::os::raw::c_uint {
1306        unsafe {
1307            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1308                ::std::ptr::addr_of!((*this)._bitfield_1),
1309                0usize,
1310                1u8,
1311            ) as u32)
1312        }
1313    }
1314    #[inline]
1315    pub unsafe fn set_has_lead_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1316        unsafe {
1317            let val: u32 = ::std::mem::transmute(val);
1318            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1319                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1320                0usize,
1321                1u8,
1322                val as u64,
1323            )
1324        }
1325    }
1326    #[inline]
1327    pub fn has_opt(&self) -> ::std::os::raw::c_uint {
1328        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1329    }
1330    #[inline]
1331    pub fn set_has_opt(&mut self, val: ::std::os::raw::c_uint) {
1332        unsafe {
1333            let val: u32 = ::std::mem::transmute(val);
1334            self._bitfield_1.set(1usize, 1u8, val as u64)
1335        }
1336    }
1337    #[inline]
1338    pub unsafe fn has_opt_raw(this: *const Self) -> ::std::os::raw::c_uint {
1339        unsafe {
1340            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1341                ::std::ptr::addr_of!((*this)._bitfield_1),
1342                1usize,
1343                1u8,
1344            ) as u32)
1345        }
1346    }
1347    #[inline]
1348    pub unsafe fn set_has_opt_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1349        unsafe {
1350            let val: u32 = ::std::mem::transmute(val);
1351            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1352                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1353                1usize,
1354                1u8,
1355                val as u64,
1356            )
1357        }
1358    }
1359    #[inline]
1360    pub fn has_rest(&self) -> ::std::os::raw::c_uint {
1361        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1362    }
1363    #[inline]
1364    pub fn set_has_rest(&mut self, val: ::std::os::raw::c_uint) {
1365        unsafe {
1366            let val: u32 = ::std::mem::transmute(val);
1367            self._bitfield_1.set(2usize, 1u8, val as u64)
1368        }
1369    }
1370    #[inline]
1371    pub unsafe fn has_rest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1372        unsafe {
1373            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1374                ::std::ptr::addr_of!((*this)._bitfield_1),
1375                2usize,
1376                1u8,
1377            ) as u32)
1378        }
1379    }
1380    #[inline]
1381    pub unsafe fn set_has_rest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1382        unsafe {
1383            let val: u32 = ::std::mem::transmute(val);
1384            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1385                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1386                2usize,
1387                1u8,
1388                val as u64,
1389            )
1390        }
1391    }
1392    #[inline]
1393    pub fn has_post(&self) -> ::std::os::raw::c_uint {
1394        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
1395    }
1396    #[inline]
1397    pub fn set_has_post(&mut self, val: ::std::os::raw::c_uint) {
1398        unsafe {
1399            let val: u32 = ::std::mem::transmute(val);
1400            self._bitfield_1.set(3usize, 1u8, val as u64)
1401        }
1402    }
1403    #[inline]
1404    pub unsafe fn has_post_raw(this: *const Self) -> ::std::os::raw::c_uint {
1405        unsafe {
1406            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1407                ::std::ptr::addr_of!((*this)._bitfield_1),
1408                3usize,
1409                1u8,
1410            ) as u32)
1411        }
1412    }
1413    #[inline]
1414    pub unsafe fn set_has_post_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1415        unsafe {
1416            let val: u32 = ::std::mem::transmute(val);
1417            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1418                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1419                3usize,
1420                1u8,
1421                val as u64,
1422            )
1423        }
1424    }
1425    #[inline]
1426    pub fn has_kw(&self) -> ::std::os::raw::c_uint {
1427        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1428    }
1429    #[inline]
1430    pub fn set_has_kw(&mut self, val: ::std::os::raw::c_uint) {
1431        unsafe {
1432            let val: u32 = ::std::mem::transmute(val);
1433            self._bitfield_1.set(4usize, 1u8, val as u64)
1434        }
1435    }
1436    #[inline]
1437    pub unsafe fn has_kw_raw(this: *const Self) -> ::std::os::raw::c_uint {
1438        unsafe {
1439            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1440                ::std::ptr::addr_of!((*this)._bitfield_1),
1441                4usize,
1442                1u8,
1443            ) as u32)
1444        }
1445    }
1446    #[inline]
1447    pub unsafe fn set_has_kw_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1448        unsafe {
1449            let val: u32 = ::std::mem::transmute(val);
1450            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1451                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1452                4usize,
1453                1u8,
1454                val as u64,
1455            )
1456        }
1457    }
1458    #[inline]
1459    pub fn has_kwrest(&self) -> ::std::os::raw::c_uint {
1460        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1461    }
1462    #[inline]
1463    pub fn set_has_kwrest(&mut self, val: ::std::os::raw::c_uint) {
1464        unsafe {
1465            let val: u32 = ::std::mem::transmute(val);
1466            self._bitfield_1.set(5usize, 1u8, val as u64)
1467        }
1468    }
1469    #[inline]
1470    pub unsafe fn has_kwrest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1471        unsafe {
1472            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1473                ::std::ptr::addr_of!((*this)._bitfield_1),
1474                5usize,
1475                1u8,
1476            ) as u32)
1477        }
1478    }
1479    #[inline]
1480    pub unsafe fn set_has_kwrest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1481        unsafe {
1482            let val: u32 = ::std::mem::transmute(val);
1483            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1484                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1485                5usize,
1486                1u8,
1487                val as u64,
1488            )
1489        }
1490    }
1491    #[inline]
1492    pub fn has_block(&self) -> ::std::os::raw::c_uint {
1493        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
1494    }
1495    #[inline]
1496    pub fn set_has_block(&mut self, val: ::std::os::raw::c_uint) {
1497        unsafe {
1498            let val: u32 = ::std::mem::transmute(val);
1499            self._bitfield_1.set(6usize, 1u8, val as u64)
1500        }
1501    }
1502    #[inline]
1503    pub unsafe fn has_block_raw(this: *const Self) -> ::std::os::raw::c_uint {
1504        unsafe {
1505            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1506                ::std::ptr::addr_of!((*this)._bitfield_1),
1507                6usize,
1508                1u8,
1509            ) as u32)
1510        }
1511    }
1512    #[inline]
1513    pub unsafe fn set_has_block_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1514        unsafe {
1515            let val: u32 = ::std::mem::transmute(val);
1516            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1517                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1518                6usize,
1519                1u8,
1520                val as u64,
1521            )
1522        }
1523    }
1524    #[inline]
1525    pub fn ambiguous_param0(&self) -> ::std::os::raw::c_uint {
1526        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
1527    }
1528    #[inline]
1529    pub fn set_ambiguous_param0(&mut self, val: ::std::os::raw::c_uint) {
1530        unsafe {
1531            let val: u32 = ::std::mem::transmute(val);
1532            self._bitfield_1.set(7usize, 1u8, val as u64)
1533        }
1534    }
1535    #[inline]
1536    pub unsafe fn ambiguous_param0_raw(this: *const Self) -> ::std::os::raw::c_uint {
1537        unsafe {
1538            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1539                ::std::ptr::addr_of!((*this)._bitfield_1),
1540                7usize,
1541                1u8,
1542            ) as u32)
1543        }
1544    }
1545    #[inline]
1546    pub unsafe fn set_ambiguous_param0_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1547        unsafe {
1548            let val: u32 = ::std::mem::transmute(val);
1549            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1550                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1551                7usize,
1552                1u8,
1553                val as u64,
1554            )
1555        }
1556    }
1557    #[inline]
1558    pub fn new_bitfield_1(
1559        has_lead: ::std::os::raw::c_uint,
1560        has_opt: ::std::os::raw::c_uint,
1561        has_rest: ::std::os::raw::c_uint,
1562        has_post: ::std::os::raw::c_uint,
1563        has_kw: ::std::os::raw::c_uint,
1564        has_kwrest: ::std::os::raw::c_uint,
1565        has_block: ::std::os::raw::c_uint,
1566        ambiguous_param0: ::std::os::raw::c_uint,
1567    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1568        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1569        __bindgen_bitfield_unit.set(0usize, 1u8, {
1570            let has_lead: u32 = unsafe { ::std::mem::transmute(has_lead) };
1571            has_lead as u64
1572        });
1573        __bindgen_bitfield_unit.set(1usize, 1u8, {
1574            let has_opt: u32 = unsafe { ::std::mem::transmute(has_opt) };
1575            has_opt as u64
1576        });
1577        __bindgen_bitfield_unit.set(2usize, 1u8, {
1578            let has_rest: u32 = unsafe { ::std::mem::transmute(has_rest) };
1579            has_rest as u64
1580        });
1581        __bindgen_bitfield_unit.set(3usize, 1u8, {
1582            let has_post: u32 = unsafe { ::std::mem::transmute(has_post) };
1583            has_post as u64
1584        });
1585        __bindgen_bitfield_unit.set(4usize, 1u8, {
1586            let has_kw: u32 = unsafe { ::std::mem::transmute(has_kw) };
1587            has_kw as u64
1588        });
1589        __bindgen_bitfield_unit.set(5usize, 1u8, {
1590            let has_kwrest: u32 = unsafe { ::std::mem::transmute(has_kwrest) };
1591            has_kwrest as u64
1592        });
1593        __bindgen_bitfield_unit.set(6usize, 1u8, {
1594            let has_block: u32 = unsafe { ::std::mem::transmute(has_block) };
1595            has_block as u64
1596        });
1597        __bindgen_bitfield_unit.set(7usize, 1u8, {
1598            let ambiguous_param0: u32 = unsafe { ::std::mem::transmute(ambiguous_param0) };
1599            ambiguous_param0 as u64
1600        });
1601        __bindgen_bitfield_unit
1602    }
1603}
1604#[repr(C)]
1605#[derive(Debug, Copy, Clone)]
1606pub struct rb_iseq_constant_body__bindgen_ty_1_rb_iseq_param_keyword {
1607    pub num: ::std::os::raw::c_int,
1608    pub required_num: ::std::os::raw::c_int,
1609    pub bits_start: ::std::os::raw::c_int,
1610    pub rest_start: ::std::os::raw::c_int,
1611    pub table: *const ID,
1612    pub default_values: *const VALUE,
1613}
1614#[repr(C)]
1615#[derive(Debug, Copy, Clone)]
1616pub struct rb_iseq_constant_body_iseq_insn_info {
1617    pub body: *const iseq_insn_info_entry,
1618    pub positions: *mut ::std::os::raw::c_uint,
1619    pub size: ::std::os::raw::c_uint,
1620    pub succ_index_table: *mut succ_index_table,
1621}
1622#[repr(C)]
1623#[derive(Debug, Copy, Clone)]
1624pub struct rb_iseq_constant_body__bindgen_ty_2 {
1625    pub flip_count: rb_snum_t,
1626    pub coverage: VALUE,
1627    pub pc2branchindex: VALUE,
1628    pub original_iseq: *mut VALUE,
1629}
1630#[repr(C)]
1631#[derive(Copy, Clone)]
1632pub struct rb_iseq_struct {
1633    pub flags: VALUE,
1634    pub wrapper: VALUE,
1635    pub body: *mut rb_iseq_constant_body,
1636    pub aux: rb_iseq_struct__bindgen_ty_1,
1637}
1638#[repr(C)]
1639#[derive(Copy, Clone)]
1640pub union rb_iseq_struct__bindgen_ty_1 {
1641    pub compile_data: *mut iseq_compile_data,
1642    pub loader: rb_iseq_struct__bindgen_ty_1__bindgen_ty_1,
1643    pub exec: rb_iseq_struct__bindgen_ty_1__bindgen_ty_2,
1644}
1645#[repr(C)]
1646#[derive(Debug, Copy, Clone)]
1647pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_1 {
1648    pub obj: VALUE,
1649    pub index: ::std::os::raw::c_int,
1650}
1651#[repr(C)]
1652#[derive(Debug, Copy, Clone)]
1653pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_2 {
1654    pub local_hooks: *mut rb_hook_list_struct,
1655    pub global_trace_events: rb_event_flag_t,
1656}
1657impl ::std::fmt::Debug for rb_iseq_struct__bindgen_ty_1 {
1658    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1659        write!(f, "rb_iseq_struct__bindgen_ty_1 {{ union }}")
1660    }
1661}
1662impl ::std::fmt::Debug for rb_iseq_struct {
1663    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1664        write!(
1665            f,
1666            "rb_iseq_struct {{ flags: {:?}, wrapper: {:?}, body: {:?}, aux: {:?} }}",
1667            self.flags, self.wrapper, self.body, self.aux
1668        )
1669    }
1670}
1671pub type rb_vm_at_exit_func = ::std::option::Option<unsafe extern "C" fn(arg1: *mut rb_vm_struct)>;
1672#[repr(C)]
1673#[derive(Debug, Copy, Clone)]
1674pub struct rb_at_exit_list {
1675    pub func: rb_vm_at_exit_func,
1676    pub next: *mut rb_at_exit_list,
1677}
1678#[repr(C)]
1679#[derive(Debug, Copy, Clone)]
1680pub struct rb_objspace {
1681    _unused: [u8; 0],
1682}
1683#[repr(C)]
1684#[derive(Debug, Copy, Clone)]
1685pub struct rb_hook_list_struct {
1686    pub hooks: *mut rb_event_hook_struct,
1687    pub events: rb_event_flag_t,
1688    pub need_clean: ::std::os::raw::c_uint,
1689    pub running: ::std::os::raw::c_uint,
1690}
1691pub type rb_hook_list_t = rb_hook_list_struct;
1692#[repr(C)]
1693#[derive(Copy, Clone)]
1694pub struct rb_vm_struct {
1695    pub self_: VALUE,
1696    pub gvl: rb_global_vm_lock_t,
1697    pub main_thread: *mut rb_thread_struct,
1698    pub running_thread: *const rb_thread_struct,
1699    pub main_altstack: *mut ::std::os::raw::c_void,
1700    pub fork_gen: rb_serial_t,
1701    pub waitpid_lock: rb_nativethread_lock_t,
1702    pub waiting_pids: list_head,
1703    pub waiting_grps: list_head,
1704    pub waiting_fds: list_head,
1705    pub living_threads: list_head,
1706    pub thgroup_default: VALUE,
1707    pub living_thread_num: ::std::os::raw::c_int,
1708    pub _bitfield_align_1: [u8; 0],
1709    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1710    pub sleeper: ::std::os::raw::c_int,
1711    pub mark_object_ary: VALUE,
1712    pub special_exceptions: [VALUE; 5usize],
1713    pub top_self: VALUE,
1714    pub load_path: VALUE,
1715    pub load_path_snapshot: VALUE,
1716    pub load_path_check_cache: VALUE,
1717    pub expanded_load_path: VALUE,
1718    pub loaded_features: VALUE,
1719    pub loaded_features_snapshot: VALUE,
1720    pub loaded_features_index: *mut st_table,
1721    pub loading_table: *mut st_table,
1722    pub trap_list: rb_vm_struct__bindgen_ty_1,
1723    pub global_hooks: rb_hook_list_t,
1724    pub ensure_rollback_table: *mut st_table,
1725    pub postponed_job_buffer: *mut rb_postponed_job_struct,
1726    pub postponed_job_index: ::std::os::raw::c_int,
1727    pub src_encoding_index: ::std::os::raw::c_int,
1728    pub workqueue: list_head,
1729    pub workqueue_lock: rb_nativethread_lock_t,
1730    pub verbose: VALUE,
1731    pub debug: VALUE,
1732    pub orig_progname: VALUE,
1733    pub progname: VALUE,
1734    pub coverages: VALUE,
1735    pub coverage_mode: ::std::os::raw::c_int,
1736    pub defined_module_hash: VALUE,
1737    pub objspace: *mut rb_objspace,
1738    pub at_exit: *mut rb_at_exit_list,
1739    pub defined_strings: *mut VALUE,
1740    pub frozen_strings: *mut st_table,
1741    pub default_params: rb_vm_struct__bindgen_ty_2,
1742    pub redefined_flag: [::std::os::raw::c_short; 28usize],
1743}
1744#[repr(C)]
1745#[derive(Debug, Copy, Clone)]
1746pub struct rb_vm_struct__bindgen_ty_1 {
1747    pub cmd: [VALUE; 65usize],
1748    pub safe: [::std::os::raw::c_uchar; 65usize],
1749}
1750#[repr(C)]
1751#[derive(Debug, Copy, Clone)]
1752pub struct rb_vm_struct__bindgen_ty_2 {
1753    pub thread_vm_stack_size: usize,
1754    pub thread_machine_stack_size: usize,
1755    pub fiber_vm_stack_size: usize,
1756    pub fiber_machine_stack_size: usize,
1757}
1758impl ::std::fmt::Debug for rb_vm_struct {
1759    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1760        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)
1761    }
1762}
1763impl rb_vm_struct {
1764    #[inline]
1765    pub fn running(&self) -> ::std::os::raw::c_uint {
1766        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1767    }
1768    #[inline]
1769    pub fn set_running(&mut self, val: ::std::os::raw::c_uint) {
1770        unsafe {
1771            let val: u32 = ::std::mem::transmute(val);
1772            self._bitfield_1.set(0usize, 1u8, val as u64)
1773        }
1774    }
1775    #[inline]
1776    pub unsafe fn running_raw(this: *const Self) -> ::std::os::raw::c_uint {
1777        unsafe {
1778            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1779                ::std::ptr::addr_of!((*this)._bitfield_1),
1780                0usize,
1781                1u8,
1782            ) as u32)
1783        }
1784    }
1785    #[inline]
1786    pub unsafe fn set_running_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1787        unsafe {
1788            let val: u32 = ::std::mem::transmute(val);
1789            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1790                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1791                0usize,
1792                1u8,
1793                val as u64,
1794            )
1795        }
1796    }
1797    #[inline]
1798    pub fn thread_abort_on_exception(&self) -> ::std::os::raw::c_uint {
1799        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
1800    }
1801    #[inline]
1802    pub fn set_thread_abort_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1803        unsafe {
1804            let val: u32 = ::std::mem::transmute(val);
1805            self._bitfield_1.set(1usize, 1u8, val as u64)
1806        }
1807    }
1808    #[inline]
1809    pub unsafe fn thread_abort_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1810        unsafe {
1811            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1812                ::std::ptr::addr_of!((*this)._bitfield_1),
1813                1usize,
1814                1u8,
1815            ) as u32)
1816        }
1817    }
1818    #[inline]
1819    pub unsafe fn set_thread_abort_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1820        unsafe {
1821            let val: u32 = ::std::mem::transmute(val);
1822            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1823                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1824                1usize,
1825                1u8,
1826                val as u64,
1827            )
1828        }
1829    }
1830    #[inline]
1831    pub fn thread_report_on_exception(&self) -> ::std::os::raw::c_uint {
1832        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
1833    }
1834    #[inline]
1835    pub fn set_thread_report_on_exception(&mut self, val: ::std::os::raw::c_uint) {
1836        unsafe {
1837            let val: u32 = ::std::mem::transmute(val);
1838            self._bitfield_1.set(2usize, 1u8, val as u64)
1839        }
1840    }
1841    #[inline]
1842    pub unsafe fn thread_report_on_exception_raw(this: *const Self) -> ::std::os::raw::c_uint {
1843        unsafe {
1844            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1845                ::std::ptr::addr_of!((*this)._bitfield_1),
1846                2usize,
1847                1u8,
1848            ) as u32)
1849        }
1850    }
1851    #[inline]
1852    pub unsafe fn set_thread_report_on_exception_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1853        unsafe {
1854            let val: u32 = ::std::mem::transmute(val);
1855            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1856                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1857                2usize,
1858                1u8,
1859                val as u64,
1860            )
1861        }
1862    }
1863    #[inline]
1864    pub fn safe_level_(&self) -> ::std::os::raw::c_uint {
1865        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
1866    }
1867    #[inline]
1868    pub fn set_safe_level_(&mut self, val: ::std::os::raw::c_uint) {
1869        unsafe {
1870            let val: u32 = ::std::mem::transmute(val);
1871            self._bitfield_1.set(3usize, 1u8, val as u64)
1872        }
1873    }
1874    #[inline]
1875    pub unsafe fn safe_level__raw(this: *const Self) -> ::std::os::raw::c_uint {
1876        unsafe {
1877            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1878                ::std::ptr::addr_of!((*this)._bitfield_1),
1879                3usize,
1880                1u8,
1881            ) as u32)
1882        }
1883    }
1884    #[inline]
1885    pub unsafe fn set_safe_level__raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1886        unsafe {
1887            let val: u32 = ::std::mem::transmute(val);
1888            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1889                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1890                3usize,
1891                1u8,
1892                val as u64,
1893            )
1894        }
1895    }
1896    #[inline]
1897    pub fn new_bitfield_1(
1898        running: ::std::os::raw::c_uint,
1899        thread_abort_on_exception: ::std::os::raw::c_uint,
1900        thread_report_on_exception: ::std::os::raw::c_uint,
1901        safe_level_: ::std::os::raw::c_uint,
1902    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1903        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1904        __bindgen_bitfield_unit.set(0usize, 1u8, {
1905            let running: u32 = unsafe { ::std::mem::transmute(running) };
1906            running as u64
1907        });
1908        __bindgen_bitfield_unit.set(1usize, 1u8, {
1909            let thread_abort_on_exception: u32 =
1910                unsafe { ::std::mem::transmute(thread_abort_on_exception) };
1911            thread_abort_on_exception as u64
1912        });
1913        __bindgen_bitfield_unit.set(2usize, 1u8, {
1914            let thread_report_on_exception: u32 =
1915                unsafe { ::std::mem::transmute(thread_report_on_exception) };
1916            thread_report_on_exception as u64
1917        });
1918        __bindgen_bitfield_unit.set(3usize, 1u8, {
1919            let safe_level_: u32 = unsafe { ::std::mem::transmute(safe_level_) };
1920            safe_level_ as u64
1921        });
1922        __bindgen_bitfield_unit
1923    }
1924}
1925pub type rb_vm_t = rb_vm_struct;
1926#[repr(C)]
1927#[derive(Debug, Copy, Clone)]
1928pub struct rb_control_frame_struct {
1929    pub pc: *const VALUE,
1930    pub sp: *mut VALUE,
1931    pub iseq: *const rb_iseq_t,
1932    pub self_: VALUE,
1933    pub ep: *const VALUE,
1934    pub block_code: *const ::std::os::raw::c_void,
1935    pub bp: *const VALUE,
1936}
1937pub type rb_control_frame_t = rb_control_frame_struct;
1938pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 0;
1939pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 1;
1940pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 2;
1941pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 3;
1942pub type rb_thread_status = ::std::os::raw::c_uint;
1943pub type rb_jmpbuf_t = jmp_buf;
1944#[repr(C)]
1945#[derive(Debug, Copy, Clone)]
1946pub struct rb_vm_tag {
1947    pub tag: VALUE,
1948    pub retval: VALUE,
1949    pub buf: rb_jmpbuf_t,
1950    pub prev: *mut rb_vm_tag,
1951    pub state: ruby_tag_type,
1952}
1953#[repr(C)]
1954#[derive(Debug, Copy, Clone)]
1955pub struct rb_vm_protect_tag {
1956    pub prev: *mut rb_vm_protect_tag,
1957}
1958#[repr(C)]
1959#[derive(Debug, Copy, Clone)]
1960pub struct rb_unblock_callback {
1961    pub func: rb_unblock_function_t,
1962    pub arg: *mut ::std::os::raw::c_void,
1963}
1964#[repr(C)]
1965#[derive(Debug, Copy, Clone)]
1966pub struct rb_mutex_struct {
1967    _unused: [u8; 0],
1968}
1969#[repr(C)]
1970#[derive(Debug, Copy, Clone)]
1971pub struct rb_thread_list_struct {
1972    pub next: *mut rb_thread_list_struct,
1973    pub th: *mut rb_thread_struct,
1974}
1975pub type rb_thread_list_t = rb_thread_list_struct;
1976#[repr(C)]
1977#[derive(Debug, Copy, Clone)]
1978pub struct rb_ensure_entry {
1979    pub marker: VALUE,
1980    pub e_proc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1981    pub data2: VALUE,
1982}
1983#[repr(C)]
1984#[derive(Debug, Copy, Clone)]
1985pub struct rb_ensure_list {
1986    pub next: *mut rb_ensure_list,
1987    pub entry: rb_ensure_entry,
1988}
1989pub type rb_ensure_list_t = rb_ensure_list;
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}