rbspy_ruby_structs/
ruby_2_0_0_0.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4/* automatically generated by rust-bindgen */
5
6#[repr(C)]
7#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
8pub struct __BindgenBitfieldUnit<Storage, Align>
9where
10    Storage: AsRef<[u8]> + AsMut<[u8]>,
11{
12    storage: Storage,
13    align: [Align; 0],
14}
15
16impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
17where
18    Storage: AsRef<[u8]> + AsMut<[u8]>,
19{
20    #[inline]
21    pub fn new(storage: Storage) -> Self {
22        Self { storage, align: [] }
23    }
24
25    #[inline]
26    pub fn get_bit(&self, index: usize) -> bool {
27        debug_assert!(index / 8 < self.storage.as_ref().len());
28
29        let byte_index = index / 8;
30        let byte = self.storage.as_ref()[byte_index];
31
32        let bit_index = index % 8;
33        let mask = 1 << bit_index;
34
35        byte & mask == mask
36    }
37
38    #[inline]
39    pub fn set_bit(&mut self, index: usize, val: bool) {
40        debug_assert!(index / 8 < self.storage.as_ref().len());
41
42        let byte_index = index / 8;
43        let byte = &mut self.storage.as_mut()[byte_index];
44
45        let bit_index = index % 8;
46        let mask = 1 << bit_index;
47
48        if val {
49            *byte |= mask;
50        } else {
51            *byte &= !mask;
52        }
53    }
54
55    #[inline]
56    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
57        debug_assert!(bit_width <= 64);
58        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
59        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
60
61        let mut val = 0;
62
63        for i in 0..(bit_width as usize) {
64            if self.get_bit(i + bit_offset) {
65                val |= 1 << i;
66            }
67        }
68
69        val
70    }
71
72    #[inline]
73    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
74        debug_assert!(bit_width <= 64);
75        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
76        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
77
78        for i in 0..(bit_width as usize) {
79            let mask = 1 << i;
80            let val_bit_is_set = val & mask == mask;
81            self.set_bit(i + bit_offset, val_bit_is_set);
82        }
83    }
84}
85pub type __clockid_t = ::std::os::raw::c_int;
86pub type clockid_t = __clockid_t;
87#[repr(C)]
88#[derive(Debug, Copy, Clone)]
89pub struct __sigset_t {
90    pub __val: [usize; 16usize],
91}
92#[test]
93fn bindgen_test_layout___sigset_t() {
94    assert_eq!(
95        ::std::mem::size_of::<__sigset_t>(),
96        128usize,
97        concat!("Size of: ", stringify!(__sigset_t))
98    );
99    assert_eq!(
100        ::std::mem::align_of::<__sigset_t>(),
101        8usize,
102        concat!("Alignment of ", stringify!(__sigset_t))
103    );
104    assert_eq!(
105        unsafe { &(*(::std::ptr::null::<__sigset_t>())).__val as *const _ as usize },
106        0usize,
107        concat!(
108            "Offset of field: ",
109            stringify!(__sigset_t),
110            "::",
111            stringify!(__val)
112        )
113    );
114}
115pub type pthread_t = usize;
116#[repr(C)]
117#[derive(Debug, Copy, Clone)]
118pub struct __pthread_internal_list {
119    pub __prev: *mut __pthread_internal_list,
120    pub __next: *mut __pthread_internal_list,
121}
122#[test]
123fn bindgen_test_layout___pthread_internal_list() {
124    assert_eq!(
125        ::std::mem::size_of::<__pthread_internal_list>(),
126        16usize,
127        concat!("Size of: ", stringify!(__pthread_internal_list))
128    );
129    assert_eq!(
130        ::std::mem::align_of::<__pthread_internal_list>(),
131        8usize,
132        concat!("Alignment of ", stringify!(__pthread_internal_list))
133    );
134    assert_eq!(
135        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize },
136        0usize,
137        concat!(
138            "Offset of field: ",
139            stringify!(__pthread_internal_list),
140            "::",
141            stringify!(__prev)
142        )
143    );
144    assert_eq!(
145        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize },
146        8usize,
147        concat!(
148            "Offset of field: ",
149            stringify!(__pthread_internal_list),
150            "::",
151            stringify!(__next)
152        )
153    );
154}
155pub type __pthread_list_t = __pthread_internal_list;
156#[repr(C)]
157#[derive(Copy, Clone)]
158pub union pthread_mutex_t {
159    pub __data: pthread_mutex_t___pthread_mutex_s,
160    pub __size: [::std::os::raw::c_char; 40usize],
161    pub __align: ::std::os::raw::c_long,
162    _bindgen_union_align: [u64; 5usize],
163}
164#[repr(C)]
165#[derive(Debug, Copy, Clone)]
166pub struct pthread_mutex_t___pthread_mutex_s {
167    pub __lock: ::std::os::raw::c_int,
168    pub __count: ::std::os::raw::c_uint,
169    pub __owner: ::std::os::raw::c_int,
170    pub __nusers: ::std::os::raw::c_uint,
171    pub __kind: ::std::os::raw::c_int,
172    pub __spins: ::std::os::raw::c_short,
173    pub __elision: ::std::os::raw::c_short,
174    pub __list: __pthread_list_t,
175}
176#[test]
177fn bindgen_test_layout_pthread_mutex_t___pthread_mutex_s() {
178    assert_eq!(
179        ::std::mem::size_of::<pthread_mutex_t___pthread_mutex_s>(),
180        40usize,
181        concat!("Size of: ", stringify!(pthread_mutex_t___pthread_mutex_s))
182    );
183    assert_eq!(
184        ::std::mem::align_of::<pthread_mutex_t___pthread_mutex_s>(),
185        8usize,
186        concat!(
187            "Alignment of ",
188            stringify!(pthread_mutex_t___pthread_mutex_s)
189        )
190    );
191    assert_eq!(
192        unsafe {
193            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__lock as *const _
194                as usize
195        },
196        0usize,
197        concat!(
198            "Offset of field: ",
199            stringify!(pthread_mutex_t___pthread_mutex_s),
200            "::",
201            stringify!(__lock)
202        )
203    );
204    assert_eq!(
205        unsafe {
206            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__count as *const _
207                as usize
208        },
209        4usize,
210        concat!(
211            "Offset of field: ",
212            stringify!(pthread_mutex_t___pthread_mutex_s),
213            "::",
214            stringify!(__count)
215        )
216    );
217    assert_eq!(
218        unsafe {
219            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__owner as *const _
220                as usize
221        },
222        8usize,
223        concat!(
224            "Offset of field: ",
225            stringify!(pthread_mutex_t___pthread_mutex_s),
226            "::",
227            stringify!(__owner)
228        )
229    );
230    assert_eq!(
231        unsafe {
232            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__nusers as *const _
233                as usize
234        },
235        12usize,
236        concat!(
237            "Offset of field: ",
238            stringify!(pthread_mutex_t___pthread_mutex_s),
239            "::",
240            stringify!(__nusers)
241        )
242    );
243    assert_eq!(
244        unsafe {
245            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__kind as *const _
246                as usize
247        },
248        16usize,
249        concat!(
250            "Offset of field: ",
251            stringify!(pthread_mutex_t___pthread_mutex_s),
252            "::",
253            stringify!(__kind)
254        )
255    );
256    assert_eq!(
257        unsafe {
258            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__spins as *const _
259                as usize
260        },
261        20usize,
262        concat!(
263            "Offset of field: ",
264            stringify!(pthread_mutex_t___pthread_mutex_s),
265            "::",
266            stringify!(__spins)
267        )
268    );
269    assert_eq!(
270        unsafe {
271            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__elision as *const _
272                as usize
273        },
274        22usize,
275        concat!(
276            "Offset of field: ",
277            stringify!(pthread_mutex_t___pthread_mutex_s),
278            "::",
279            stringify!(__elision)
280        )
281    );
282    assert_eq!(
283        unsafe {
284            &(*(::std::ptr::null::<pthread_mutex_t___pthread_mutex_s>())).__list as *const _
285                as usize
286        },
287        24usize,
288        concat!(
289            "Offset of field: ",
290            stringify!(pthread_mutex_t___pthread_mutex_s),
291            "::",
292            stringify!(__list)
293        )
294    );
295}
296#[test]
297fn bindgen_test_layout_pthread_mutex_t() {
298    assert_eq!(
299        ::std::mem::size_of::<pthread_mutex_t>(),
300        40usize,
301        concat!("Size of: ", stringify!(pthread_mutex_t))
302    );
303    assert_eq!(
304        ::std::mem::align_of::<pthread_mutex_t>(),
305        8usize,
306        concat!("Alignment of ", stringify!(pthread_mutex_t))
307    );
308    assert_eq!(
309        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__data as *const _ as usize },
310        0usize,
311        concat!(
312            "Offset of field: ",
313            stringify!(pthread_mutex_t),
314            "::",
315            stringify!(__data)
316        )
317    );
318    assert_eq!(
319        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__size as *const _ as usize },
320        0usize,
321        concat!(
322            "Offset of field: ",
323            stringify!(pthread_mutex_t),
324            "::",
325            stringify!(__size)
326        )
327    );
328    assert_eq!(
329        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__align as *const _ as usize },
330        0usize,
331        concat!(
332            "Offset of field: ",
333            stringify!(pthread_mutex_t),
334            "::",
335            stringify!(__align)
336        )
337    );
338}
339impl ::std::fmt::Debug for pthread_mutex_t {
340    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
341        write!(f, "pthread_mutex_t {{ union }}")
342    }
343}
344#[repr(C)]
345#[derive(Copy, Clone)]
346pub union pthread_cond_t {
347    pub __data: pthread_cond_t__bindgen_ty_1,
348    pub __size: [::std::os::raw::c_char; 48usize],
349    pub __align: ::std::os::raw::c_longlong,
350    _bindgen_union_align: [u64; 6usize],
351}
352#[repr(C)]
353#[derive(Debug, Copy, Clone)]
354pub struct pthread_cond_t__bindgen_ty_1 {
355    pub __lock: ::std::os::raw::c_int,
356    pub __futex: ::std::os::raw::c_uint,
357    pub __total_seq: ::std::os::raw::c_ulonglong,
358    pub __wakeup_seq: ::std::os::raw::c_ulonglong,
359    pub __woken_seq: ::std::os::raw::c_ulonglong,
360    pub __mutex: *mut ::std::os::raw::c_void,
361    pub __nwaiters: ::std::os::raw::c_uint,
362    pub __broadcast_seq: ::std::os::raw::c_uint,
363}
364#[test]
365fn bindgen_test_layout_pthread_cond_t__bindgen_ty_1() {
366    assert_eq!(
367        ::std::mem::size_of::<pthread_cond_t__bindgen_ty_1>(),
368        48usize,
369        concat!("Size of: ", stringify!(pthread_cond_t__bindgen_ty_1))
370    );
371    assert_eq!(
372        ::std::mem::align_of::<pthread_cond_t__bindgen_ty_1>(),
373        8usize,
374        concat!("Alignment of ", stringify!(pthread_cond_t__bindgen_ty_1))
375    );
376    assert_eq!(
377        unsafe {
378            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__lock as *const _ as usize
379        },
380        0usize,
381        concat!(
382            "Offset of field: ",
383            stringify!(pthread_cond_t__bindgen_ty_1),
384            "::",
385            stringify!(__lock)
386        )
387    );
388    assert_eq!(
389        unsafe {
390            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__futex as *const _ as usize
391        },
392        4usize,
393        concat!(
394            "Offset of field: ",
395            stringify!(pthread_cond_t__bindgen_ty_1),
396            "::",
397            stringify!(__futex)
398        )
399    );
400    assert_eq!(
401        unsafe {
402            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__total_seq as *const _
403                as usize
404        },
405        8usize,
406        concat!(
407            "Offset of field: ",
408            stringify!(pthread_cond_t__bindgen_ty_1),
409            "::",
410            stringify!(__total_seq)
411        )
412    );
413    assert_eq!(
414        unsafe {
415            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__wakeup_seq as *const _
416                as usize
417        },
418        16usize,
419        concat!(
420            "Offset of field: ",
421            stringify!(pthread_cond_t__bindgen_ty_1),
422            "::",
423            stringify!(__wakeup_seq)
424        )
425    );
426    assert_eq!(
427        unsafe {
428            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__woken_seq as *const _
429                as usize
430        },
431        24usize,
432        concat!(
433            "Offset of field: ",
434            stringify!(pthread_cond_t__bindgen_ty_1),
435            "::",
436            stringify!(__woken_seq)
437        )
438    );
439    assert_eq!(
440        unsafe {
441            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__mutex as *const _ as usize
442        },
443        32usize,
444        concat!(
445            "Offset of field: ",
446            stringify!(pthread_cond_t__bindgen_ty_1),
447            "::",
448            stringify!(__mutex)
449        )
450    );
451    assert_eq!(
452        unsafe {
453            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__nwaiters as *const _ as usize
454        },
455        40usize,
456        concat!(
457            "Offset of field: ",
458            stringify!(pthread_cond_t__bindgen_ty_1),
459            "::",
460            stringify!(__nwaiters)
461        )
462    );
463    assert_eq!(
464        unsafe {
465            &(*(::std::ptr::null::<pthread_cond_t__bindgen_ty_1>())).__broadcast_seq as *const _
466                as usize
467        },
468        44usize,
469        concat!(
470            "Offset of field: ",
471            stringify!(pthread_cond_t__bindgen_ty_1),
472            "::",
473            stringify!(__broadcast_seq)
474        )
475    );
476}
477#[test]
478fn bindgen_test_layout_pthread_cond_t() {
479    assert_eq!(
480        ::std::mem::size_of::<pthread_cond_t>(),
481        48usize,
482        concat!("Size of: ", stringify!(pthread_cond_t))
483    );
484    assert_eq!(
485        ::std::mem::align_of::<pthread_cond_t>(),
486        8usize,
487        concat!("Alignment of ", stringify!(pthread_cond_t))
488    );
489    assert_eq!(
490        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__data as *const _ as usize },
491        0usize,
492        concat!(
493            "Offset of field: ",
494            stringify!(pthread_cond_t),
495            "::",
496            stringify!(__data)
497        )
498    );
499    assert_eq!(
500        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__size as *const _ as usize },
501        0usize,
502        concat!(
503            "Offset of field: ",
504            stringify!(pthread_cond_t),
505            "::",
506            stringify!(__size)
507        )
508    );
509    assert_eq!(
510        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__align as *const _ as usize },
511        0usize,
512        concat!(
513            "Offset of field: ",
514            stringify!(pthread_cond_t),
515            "::",
516            stringify!(__align)
517        )
518    );
519}
520impl ::std::fmt::Debug for pthread_cond_t {
521    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
522        write!(f, "pthread_cond_t {{ union }}")
523    }
524}
525pub type VALUE = usize;
526pub type ID = usize;
527#[repr(C)]
528#[derive(Debug, Copy, Clone)]
529pub struct RBasic {
530    pub flags: VALUE,
531    pub klass: VALUE,
532}
533#[test]
534fn bindgen_test_layout_RBasic() {
535    assert_eq!(
536        ::std::mem::size_of::<RBasic>(),
537        16usize,
538        concat!("Size of: ", stringify!(RBasic))
539    );
540    assert_eq!(
541        ::std::mem::align_of::<RBasic>(),
542        8usize,
543        concat!("Alignment of ", stringify!(RBasic))
544    );
545    assert_eq!(
546        unsafe { &(*(::std::ptr::null::<RBasic>())).flags as *const _ as usize },
547        0usize,
548        concat!(
549            "Offset of field: ",
550            stringify!(RBasic),
551            "::",
552            stringify!(flags)
553        )
554    );
555    assert_eq!(
556        unsafe { &(*(::std::ptr::null::<RBasic>())).klass as *const _ as usize },
557        8usize,
558        concat!(
559            "Offset of field: ",
560            stringify!(RBasic),
561            "::",
562            stringify!(klass)
563        )
564    );
565}
566#[repr(C)]
567#[derive(Copy, Clone)]
568pub struct RString {
569    pub basic: RBasic,
570    pub as_: RString__bindgen_ty_1,
571}
572#[repr(C)]
573#[derive(Copy, Clone)]
574pub union RString__bindgen_ty_1 {
575    pub heap: RString__bindgen_ty_1__bindgen_ty_1,
576    pub ary: [::std::os::raw::c_char; 24usize],
577    _bindgen_union_align: [u64; 3usize],
578}
579#[repr(C)]
580#[derive(Copy, Clone)]
581pub struct RString__bindgen_ty_1__bindgen_ty_1 {
582    pub len: ::std::os::raw::c_long,
583    pub ptr: *mut ::std::os::raw::c_char,
584    pub aux: RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
585}
586#[repr(C)]
587#[derive(Copy, Clone)]
588pub union RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
589    pub capa: ::std::os::raw::c_long,
590    pub shared: VALUE,
591    _bindgen_union_align: u64,
592}
593#[test]
594fn bindgen_test_layout_RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
595    assert_eq!(
596        ::std::mem::size_of::<RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
597        8usize,
598        concat!(
599            "Size of: ",
600            stringify!(RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
601        )
602    );
603    assert_eq!(
604        ::std::mem::align_of::<RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
605        8usize,
606        concat!(
607            "Alignment of ",
608            stringify!(RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
609        )
610    );
611    assert_eq!(
612        unsafe {
613            &(*(::std::ptr::null::<RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).capa
614                as *const _ as usize
615        },
616        0usize,
617        concat!(
618            "Offset of field: ",
619            stringify!(RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
620            "::",
621            stringify!(capa)
622        )
623    );
624    assert_eq!(
625        unsafe {
626            &(*(::std::ptr::null::<RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).shared
627                as *const _ as usize
628        },
629        0usize,
630        concat!(
631            "Offset of field: ",
632            stringify!(RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
633            "::",
634            stringify!(shared)
635        )
636    );
637}
638impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
639    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
640        write!(
641            f,
642            "RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
643        )
644    }
645}
646#[test]
647fn bindgen_test_layout_RString__bindgen_ty_1__bindgen_ty_1() {
648    assert_eq!(
649        ::std::mem::size_of::<RString__bindgen_ty_1__bindgen_ty_1>(),
650        24usize,
651        concat!("Size of: ", stringify!(RString__bindgen_ty_1__bindgen_ty_1))
652    );
653    assert_eq!(
654        ::std::mem::align_of::<RString__bindgen_ty_1__bindgen_ty_1>(),
655        8usize,
656        concat!(
657            "Alignment of ",
658            stringify!(RString__bindgen_ty_1__bindgen_ty_1)
659        )
660    );
661    assert_eq!(
662        unsafe {
663            &(*(::std::ptr::null::<RString__bindgen_ty_1__bindgen_ty_1>())).len as *const _ as usize
664        },
665        0usize,
666        concat!(
667            "Offset of field: ",
668            stringify!(RString__bindgen_ty_1__bindgen_ty_1),
669            "::",
670            stringify!(len)
671        )
672    );
673    assert_eq!(
674        unsafe {
675            &(*(::std::ptr::null::<RString__bindgen_ty_1__bindgen_ty_1>())).ptr as *const _ as usize
676        },
677        8usize,
678        concat!(
679            "Offset of field: ",
680            stringify!(RString__bindgen_ty_1__bindgen_ty_1),
681            "::",
682            stringify!(ptr)
683        )
684    );
685    assert_eq!(
686        unsafe {
687            &(*(::std::ptr::null::<RString__bindgen_ty_1__bindgen_ty_1>())).aux as *const _ as usize
688        },
689        16usize,
690        concat!(
691            "Offset of field: ",
692            stringify!(RString__bindgen_ty_1__bindgen_ty_1),
693            "::",
694            stringify!(aux)
695        )
696    );
697}
698impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1 {
699    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
700        write!(
701            f,
702            "RString__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, ptr: {:?}, aux: {:?} }}",
703            self.len, self.ptr, self.aux
704        )
705    }
706}
707#[test]
708fn bindgen_test_layout_RString__bindgen_ty_1() {
709    assert_eq!(
710        ::std::mem::size_of::<RString__bindgen_ty_1>(),
711        24usize,
712        concat!("Size of: ", stringify!(RString__bindgen_ty_1))
713    );
714    assert_eq!(
715        ::std::mem::align_of::<RString__bindgen_ty_1>(),
716        8usize,
717        concat!("Alignment of ", stringify!(RString__bindgen_ty_1))
718    );
719    assert_eq!(
720        unsafe { &(*(::std::ptr::null::<RString__bindgen_ty_1>())).heap as *const _ as usize },
721        0usize,
722        concat!(
723            "Offset of field: ",
724            stringify!(RString__bindgen_ty_1),
725            "::",
726            stringify!(heap)
727        )
728    );
729    assert_eq!(
730        unsafe { &(*(::std::ptr::null::<RString__bindgen_ty_1>())).ary as *const _ as usize },
731        0usize,
732        concat!(
733            "Offset of field: ",
734            stringify!(RString__bindgen_ty_1),
735            "::",
736            stringify!(ary)
737        )
738    );
739}
740impl ::std::fmt::Debug for RString__bindgen_ty_1 {
741    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
742        write!(f, "RString__bindgen_ty_1 {{ union }}")
743    }
744}
745#[test]
746fn bindgen_test_layout_RString() {
747    assert_eq!(
748        ::std::mem::size_of::<RString>(),
749        40usize,
750        concat!("Size of: ", stringify!(RString))
751    );
752    assert_eq!(
753        ::std::mem::align_of::<RString>(),
754        8usize,
755        concat!("Alignment of ", stringify!(RString))
756    );
757    assert_eq!(
758        unsafe { &(*(::std::ptr::null::<RString>())).basic as *const _ as usize },
759        0usize,
760        concat!(
761            "Offset of field: ",
762            stringify!(RString),
763            "::",
764            stringify!(basic)
765        )
766    );
767    assert_eq!(
768        unsafe { &(*(::std::ptr::null::<RString>())).as_ as *const _ as usize },
769        16usize,
770        concat!(
771            "Offset of field: ",
772            stringify!(RString),
773            "::",
774            stringify!(as_)
775        )
776    );
777}
778impl ::std::fmt::Debug for RString {
779    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
780        write!(
781            f,
782            "RString {{ basic: {:?}, as: {:?} }}",
783            self.basic, self.as_
784        )
785    }
786}
787#[repr(C)]
788#[derive(Copy, Clone)]
789pub struct RArray {
790    pub basic: RBasic,
791    pub as_: RArray__bindgen_ty_1,
792}
793#[repr(C)]
794#[derive(Copy, Clone)]
795pub union RArray__bindgen_ty_1 {
796    pub heap: RArray__bindgen_ty_1__bindgen_ty_1,
797    pub ary: [VALUE; 3usize],
798    _bindgen_union_align: [u64; 3usize],
799}
800#[repr(C)]
801#[derive(Copy, Clone)]
802pub struct RArray__bindgen_ty_1__bindgen_ty_1 {
803    pub len: ::std::os::raw::c_long,
804    pub aux: RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
805    pub ptr: *mut VALUE,
806}
807#[repr(C)]
808#[derive(Copy, Clone)]
809pub union RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
810    pub capa: ::std::os::raw::c_long,
811    pub shared: VALUE,
812    _bindgen_union_align: u64,
813}
814#[test]
815fn bindgen_test_layout_RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
816    assert_eq!(
817        ::std::mem::size_of::<RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
818        8usize,
819        concat!(
820            "Size of: ",
821            stringify!(RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
822        )
823    );
824    assert_eq!(
825        ::std::mem::align_of::<RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
826        8usize,
827        concat!(
828            "Alignment of ",
829            stringify!(RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
830        )
831    );
832    assert_eq!(
833        unsafe {
834            &(*(::std::ptr::null::<RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).capa
835                as *const _ as usize
836        },
837        0usize,
838        concat!(
839            "Offset of field: ",
840            stringify!(RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
841            "::",
842            stringify!(capa)
843        )
844    );
845    assert_eq!(
846        unsafe {
847            &(*(::std::ptr::null::<RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).shared
848                as *const _ as usize
849        },
850        0usize,
851        concat!(
852            "Offset of field: ",
853            stringify!(RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
854            "::",
855            stringify!(shared)
856        )
857    );
858}
859impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
860    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
861        write!(
862            f,
863            "RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
864        )
865    }
866}
867#[test]
868fn bindgen_test_layout_RArray__bindgen_ty_1__bindgen_ty_1() {
869    assert_eq!(
870        ::std::mem::size_of::<RArray__bindgen_ty_1__bindgen_ty_1>(),
871        24usize,
872        concat!("Size of: ", stringify!(RArray__bindgen_ty_1__bindgen_ty_1))
873    );
874    assert_eq!(
875        ::std::mem::align_of::<RArray__bindgen_ty_1__bindgen_ty_1>(),
876        8usize,
877        concat!(
878            "Alignment of ",
879            stringify!(RArray__bindgen_ty_1__bindgen_ty_1)
880        )
881    );
882    assert_eq!(
883        unsafe {
884            &(*(::std::ptr::null::<RArray__bindgen_ty_1__bindgen_ty_1>())).len as *const _ as usize
885        },
886        0usize,
887        concat!(
888            "Offset of field: ",
889            stringify!(RArray__bindgen_ty_1__bindgen_ty_1),
890            "::",
891            stringify!(len)
892        )
893    );
894    assert_eq!(
895        unsafe {
896            &(*(::std::ptr::null::<RArray__bindgen_ty_1__bindgen_ty_1>())).aux as *const _ as usize
897        },
898        8usize,
899        concat!(
900            "Offset of field: ",
901            stringify!(RArray__bindgen_ty_1__bindgen_ty_1),
902            "::",
903            stringify!(aux)
904        )
905    );
906    assert_eq!(
907        unsafe {
908            &(*(::std::ptr::null::<RArray__bindgen_ty_1__bindgen_ty_1>())).ptr as *const _ as usize
909        },
910        16usize,
911        concat!(
912            "Offset of field: ",
913            stringify!(RArray__bindgen_ty_1__bindgen_ty_1),
914            "::",
915            stringify!(ptr)
916        )
917    );
918}
919impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1 {
920    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
921        write!(
922            f,
923            "RArray__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, aux: {:?}, ptr: {:?} }}",
924            self.len, self.aux, self.ptr
925        )
926    }
927}
928#[test]
929fn bindgen_test_layout_RArray__bindgen_ty_1() {
930    assert_eq!(
931        ::std::mem::size_of::<RArray__bindgen_ty_1>(),
932        24usize,
933        concat!("Size of: ", stringify!(RArray__bindgen_ty_1))
934    );
935    assert_eq!(
936        ::std::mem::align_of::<RArray__bindgen_ty_1>(),
937        8usize,
938        concat!("Alignment of ", stringify!(RArray__bindgen_ty_1))
939    );
940    assert_eq!(
941        unsafe { &(*(::std::ptr::null::<RArray__bindgen_ty_1>())).heap as *const _ as usize },
942        0usize,
943        concat!(
944            "Offset of field: ",
945            stringify!(RArray__bindgen_ty_1),
946            "::",
947            stringify!(heap)
948        )
949    );
950    assert_eq!(
951        unsafe { &(*(::std::ptr::null::<RArray__bindgen_ty_1>())).ary as *const _ as usize },
952        0usize,
953        concat!(
954            "Offset of field: ",
955            stringify!(RArray__bindgen_ty_1),
956            "::",
957            stringify!(ary)
958        )
959    );
960}
961impl ::std::fmt::Debug for RArray__bindgen_ty_1 {
962    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
963        write!(f, "RArray__bindgen_ty_1 {{ union }}")
964    }
965}
966#[test]
967fn bindgen_test_layout_RArray() {
968    assert_eq!(
969        ::std::mem::size_of::<RArray>(),
970        40usize,
971        concat!("Size of: ", stringify!(RArray))
972    );
973    assert_eq!(
974        ::std::mem::align_of::<RArray>(),
975        8usize,
976        concat!("Alignment of ", stringify!(RArray))
977    );
978    assert_eq!(
979        unsafe { &(*(::std::ptr::null::<RArray>())).basic as *const _ as usize },
980        0usize,
981        concat!(
982            "Offset of field: ",
983            stringify!(RArray),
984            "::",
985            stringify!(basic)
986        )
987    );
988    assert_eq!(
989        unsafe { &(*(::std::ptr::null::<RArray>())).as_ as *const _ as usize },
990        16usize,
991        concat!(
992            "Offset of field: ",
993            stringify!(RArray),
994            "::",
995            stringify!(as_)
996        )
997    );
998}
999impl ::std::fmt::Debug for RArray {
1000    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1001        write!(
1002            f,
1003            "RArray {{ basic: {:?}, as: {:?} }}",
1004            self.basic, self.as_
1005        )
1006    }
1007}
1008#[repr(C)]
1009#[derive(Debug, Copy, Clone)]
1010pub struct rb_global_variable {
1011    _unused: [u8; 0],
1012}
1013pub type st_data_t = usize;
1014pub type st_index_t = st_data_t;
1015#[repr(C)]
1016#[derive(Debug, Copy, Clone)]
1017pub struct st_hash_type {
1018    pub compare: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
1019    pub hash: ::std::option::Option<unsafe extern "C" fn() -> st_index_t>,
1020}
1021#[test]
1022fn bindgen_test_layout_st_hash_type() {
1023    assert_eq!(
1024        ::std::mem::size_of::<st_hash_type>(),
1025        16usize,
1026        concat!("Size of: ", stringify!(st_hash_type))
1027    );
1028    assert_eq!(
1029        ::std::mem::align_of::<st_hash_type>(),
1030        8usize,
1031        concat!("Alignment of ", stringify!(st_hash_type))
1032    );
1033    assert_eq!(
1034        unsafe { &(*(::std::ptr::null::<st_hash_type>())).compare as *const _ as usize },
1035        0usize,
1036        concat!(
1037            "Offset of field: ",
1038            stringify!(st_hash_type),
1039            "::",
1040            stringify!(compare)
1041        )
1042    );
1043    assert_eq!(
1044        unsafe { &(*(::std::ptr::null::<st_hash_type>())).hash as *const _ as usize },
1045        8usize,
1046        concat!(
1047            "Offset of field: ",
1048            stringify!(st_hash_type),
1049            "::",
1050            stringify!(hash)
1051        )
1052    );
1053}
1054#[repr(C)]
1055#[derive(Copy, Clone)]
1056pub struct st_table {
1057    pub type_: *const st_hash_type,
1058    pub num_bins: st_index_t,
1059    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u64>,
1060    pub as_: st_table__bindgen_ty_1,
1061}
1062#[repr(C)]
1063#[derive(Copy, Clone)]
1064pub union st_table__bindgen_ty_1 {
1065    pub big: st_table__bindgen_ty_1__bindgen_ty_1,
1066    pub packed: st_table__bindgen_ty_1__bindgen_ty_2,
1067    _bindgen_union_align: [u64; 3usize],
1068}
1069#[repr(C)]
1070#[derive(Debug, Copy, Clone)]
1071pub struct st_table__bindgen_ty_1__bindgen_ty_1 {
1072    pub bins: *mut *mut st_table_entry,
1073    pub head: *mut st_table_entry,
1074    pub tail: *mut st_table_entry,
1075}
1076#[test]
1077fn bindgen_test_layout_st_table__bindgen_ty_1__bindgen_ty_1() {
1078    assert_eq!(
1079        ::std::mem::size_of::<st_table__bindgen_ty_1__bindgen_ty_1>(),
1080        24usize,
1081        concat!(
1082            "Size of: ",
1083            stringify!(st_table__bindgen_ty_1__bindgen_ty_1)
1084        )
1085    );
1086    assert_eq!(
1087        ::std::mem::align_of::<st_table__bindgen_ty_1__bindgen_ty_1>(),
1088        8usize,
1089        concat!(
1090            "Alignment of ",
1091            stringify!(st_table__bindgen_ty_1__bindgen_ty_1)
1092        )
1093    );
1094    assert_eq!(
1095        unsafe {
1096            &(*(::std::ptr::null::<st_table__bindgen_ty_1__bindgen_ty_1>())).bins as *const _
1097                as usize
1098        },
1099        0usize,
1100        concat!(
1101            "Offset of field: ",
1102            stringify!(st_table__bindgen_ty_1__bindgen_ty_1),
1103            "::",
1104            stringify!(bins)
1105        )
1106    );
1107    assert_eq!(
1108        unsafe {
1109            &(*(::std::ptr::null::<st_table__bindgen_ty_1__bindgen_ty_1>())).head as *const _
1110                as usize
1111        },
1112        8usize,
1113        concat!(
1114            "Offset of field: ",
1115            stringify!(st_table__bindgen_ty_1__bindgen_ty_1),
1116            "::",
1117            stringify!(head)
1118        )
1119    );
1120    assert_eq!(
1121        unsafe {
1122            &(*(::std::ptr::null::<st_table__bindgen_ty_1__bindgen_ty_1>())).tail as *const _
1123                as usize
1124        },
1125        16usize,
1126        concat!(
1127            "Offset of field: ",
1128            stringify!(st_table__bindgen_ty_1__bindgen_ty_1),
1129            "::",
1130            stringify!(tail)
1131        )
1132    );
1133}
1134#[repr(C)]
1135#[derive(Debug, Copy, Clone)]
1136pub struct st_table__bindgen_ty_1__bindgen_ty_2 {
1137    pub entries: *mut st_packed_entry,
1138    pub real_entries: st_index_t,
1139}
1140#[test]
1141fn bindgen_test_layout_st_table__bindgen_ty_1__bindgen_ty_2() {
1142    assert_eq!(
1143        ::std::mem::size_of::<st_table__bindgen_ty_1__bindgen_ty_2>(),
1144        16usize,
1145        concat!(
1146            "Size of: ",
1147            stringify!(st_table__bindgen_ty_1__bindgen_ty_2)
1148        )
1149    );
1150    assert_eq!(
1151        ::std::mem::align_of::<st_table__bindgen_ty_1__bindgen_ty_2>(),
1152        8usize,
1153        concat!(
1154            "Alignment of ",
1155            stringify!(st_table__bindgen_ty_1__bindgen_ty_2)
1156        )
1157    );
1158    assert_eq!(
1159        unsafe {
1160            &(*(::std::ptr::null::<st_table__bindgen_ty_1__bindgen_ty_2>())).entries as *const _
1161                as usize
1162        },
1163        0usize,
1164        concat!(
1165            "Offset of field: ",
1166            stringify!(st_table__bindgen_ty_1__bindgen_ty_2),
1167            "::",
1168            stringify!(entries)
1169        )
1170    );
1171    assert_eq!(
1172        unsafe {
1173            &(*(::std::ptr::null::<st_table__bindgen_ty_1__bindgen_ty_2>())).real_entries
1174                as *const _ as usize
1175        },
1176        8usize,
1177        concat!(
1178            "Offset of field: ",
1179            stringify!(st_table__bindgen_ty_1__bindgen_ty_2),
1180            "::",
1181            stringify!(real_entries)
1182        )
1183    );
1184}
1185#[test]
1186fn bindgen_test_layout_st_table__bindgen_ty_1() {
1187    assert_eq!(
1188        ::std::mem::size_of::<st_table__bindgen_ty_1>(),
1189        24usize,
1190        concat!("Size of: ", stringify!(st_table__bindgen_ty_1))
1191    );
1192    assert_eq!(
1193        ::std::mem::align_of::<st_table__bindgen_ty_1>(),
1194        8usize,
1195        concat!("Alignment of ", stringify!(st_table__bindgen_ty_1))
1196    );
1197    assert_eq!(
1198        unsafe { &(*(::std::ptr::null::<st_table__bindgen_ty_1>())).big as *const _ as usize },
1199        0usize,
1200        concat!(
1201            "Offset of field: ",
1202            stringify!(st_table__bindgen_ty_1),
1203            "::",
1204            stringify!(big)
1205        )
1206    );
1207    assert_eq!(
1208        unsafe { &(*(::std::ptr::null::<st_table__bindgen_ty_1>())).packed as *const _ as usize },
1209        0usize,
1210        concat!(
1211            "Offset of field: ",
1212            stringify!(st_table__bindgen_ty_1),
1213            "::",
1214            stringify!(packed)
1215        )
1216    );
1217}
1218impl ::std::fmt::Debug for st_table__bindgen_ty_1 {
1219    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1220        write!(f, "st_table__bindgen_ty_1 {{ union }}")
1221    }
1222}
1223#[test]
1224fn bindgen_test_layout_st_table() {
1225    assert_eq!(
1226        ::std::mem::size_of::<st_table>(),
1227        48usize,
1228        concat!("Size of: ", stringify!(st_table))
1229    );
1230    assert_eq!(
1231        ::std::mem::align_of::<st_table>(),
1232        8usize,
1233        concat!("Alignment of ", stringify!(st_table))
1234    );
1235    assert_eq!(
1236        unsafe { &(*(::std::ptr::null::<st_table>())).type_ as *const _ as usize },
1237        0usize,
1238        concat!(
1239            "Offset of field: ",
1240            stringify!(st_table),
1241            "::",
1242            stringify!(type_)
1243        )
1244    );
1245    assert_eq!(
1246        unsafe { &(*(::std::ptr::null::<st_table>())).num_bins as *const _ as usize },
1247        8usize,
1248        concat!(
1249            "Offset of field: ",
1250            stringify!(st_table),
1251            "::",
1252            stringify!(num_bins)
1253        )
1254    );
1255    assert_eq!(
1256        unsafe { &(*(::std::ptr::null::<st_table>())).as_ as *const _ as usize },
1257        24usize,
1258        concat!(
1259            "Offset of field: ",
1260            stringify!(st_table),
1261            "::",
1262            stringify!(as_)
1263        )
1264    );
1265}
1266impl ::std::fmt::Debug for st_table {
1267    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1268        write ! ( f , "st_table {{ type: {:?}, num_bins: {:?}, entries_packed : {:?}, num_entries : {:?}, as: {:?} }}" , self . type_ , self . num_bins , self . entries_packed ( ) , self . num_entries ( ) , self . as_ )
1269    }
1270}
1271impl st_table {
1272    #[inline]
1273    pub fn entries_packed(&self) -> ::std::os::raw::c_uint {
1274        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1275    }
1276    #[inline]
1277    pub fn set_entries_packed(&mut self, val: ::std::os::raw::c_uint) {
1278        unsafe {
1279            let val: u32 = ::std::mem::transmute(val);
1280            self._bitfield_1.set(0usize, 1u8, val as u64)
1281        }
1282    }
1283    #[inline]
1284    pub fn num_entries(&self) -> st_index_t {
1285        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 63u8) as usize) }
1286    }
1287    #[inline]
1288    pub fn set_num_entries(&mut self, val: st_index_t) {
1289        unsafe {
1290            let val: usize = ::std::mem::transmute(val);
1291            self._bitfield_1.set(1usize, 63u8, val as u64)
1292        }
1293    }
1294    #[inline]
1295    pub fn new_bitfield_1(
1296        entries_packed: ::std::os::raw::c_uint,
1297        num_entries: st_index_t,
1298    ) -> __BindgenBitfieldUnit<[u8; 8usize], u64> {
1299        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u64> =
1300            Default::default();
1301        __bindgen_bitfield_unit.set(0usize, 1u8, {
1302            let entries_packed: u32 = unsafe { ::std::mem::transmute(entries_packed) };
1303            entries_packed as u64
1304        });
1305        __bindgen_bitfield_unit.set(1usize, 63u8, {
1306            let num_entries: usize = unsafe { ::std::mem::transmute(num_entries) };
1307            num_entries as u64
1308        });
1309        __bindgen_bitfield_unit
1310    }
1311}
1312pub type rb_unblock_function_t =
1313    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
1314pub type rb_event_flag_t = usize;
1315#[repr(C)]
1316#[derive(Copy, Clone)]
1317pub struct RNode {
1318    pub flags: VALUE,
1319    pub nd_reserved: VALUE,
1320    pub u1: RNode__bindgen_ty_1,
1321    pub u2: RNode__bindgen_ty_2,
1322    pub u3: RNode__bindgen_ty_3,
1323}
1324#[repr(C)]
1325#[derive(Copy, Clone)]
1326pub union RNode__bindgen_ty_1 {
1327    pub node: *mut RNode,
1328    pub id: ID,
1329    pub value: VALUE,
1330    pub cfunc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1331    pub tbl: *mut ID,
1332    _bindgen_union_align: u64,
1333}
1334#[test]
1335fn bindgen_test_layout_RNode__bindgen_ty_1() {
1336    assert_eq!(
1337        ::std::mem::size_of::<RNode__bindgen_ty_1>(),
1338        8usize,
1339        concat!("Size of: ", stringify!(RNode__bindgen_ty_1))
1340    );
1341    assert_eq!(
1342        ::std::mem::align_of::<RNode__bindgen_ty_1>(),
1343        8usize,
1344        concat!("Alignment of ", stringify!(RNode__bindgen_ty_1))
1345    );
1346    assert_eq!(
1347        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).node as *const _ as usize },
1348        0usize,
1349        concat!(
1350            "Offset of field: ",
1351            stringify!(RNode__bindgen_ty_1),
1352            "::",
1353            stringify!(node)
1354        )
1355    );
1356    assert_eq!(
1357        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).id as *const _ as usize },
1358        0usize,
1359        concat!(
1360            "Offset of field: ",
1361            stringify!(RNode__bindgen_ty_1),
1362            "::",
1363            stringify!(id)
1364        )
1365    );
1366    assert_eq!(
1367        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).value as *const _ as usize },
1368        0usize,
1369        concat!(
1370            "Offset of field: ",
1371            stringify!(RNode__bindgen_ty_1),
1372            "::",
1373            stringify!(value)
1374        )
1375    );
1376    assert_eq!(
1377        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).cfunc as *const _ as usize },
1378        0usize,
1379        concat!(
1380            "Offset of field: ",
1381            stringify!(RNode__bindgen_ty_1),
1382            "::",
1383            stringify!(cfunc)
1384        )
1385    );
1386    assert_eq!(
1387        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).tbl as *const _ as usize },
1388        0usize,
1389        concat!(
1390            "Offset of field: ",
1391            stringify!(RNode__bindgen_ty_1),
1392            "::",
1393            stringify!(tbl)
1394        )
1395    );
1396}
1397impl ::std::fmt::Debug for RNode__bindgen_ty_1 {
1398    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1399        write!(f, "RNode__bindgen_ty_1 {{ union }}")
1400    }
1401}
1402#[repr(C)]
1403#[derive(Copy, Clone)]
1404pub union RNode__bindgen_ty_2 {
1405    pub node: *mut RNode,
1406    pub id: ID,
1407    pub argc: ::std::os::raw::c_long,
1408    pub value: VALUE,
1409    _bindgen_union_align: u64,
1410}
1411#[test]
1412fn bindgen_test_layout_RNode__bindgen_ty_2() {
1413    assert_eq!(
1414        ::std::mem::size_of::<RNode__bindgen_ty_2>(),
1415        8usize,
1416        concat!("Size of: ", stringify!(RNode__bindgen_ty_2))
1417    );
1418    assert_eq!(
1419        ::std::mem::align_of::<RNode__bindgen_ty_2>(),
1420        8usize,
1421        concat!("Alignment of ", stringify!(RNode__bindgen_ty_2))
1422    );
1423    assert_eq!(
1424        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).node as *const _ as usize },
1425        0usize,
1426        concat!(
1427            "Offset of field: ",
1428            stringify!(RNode__bindgen_ty_2),
1429            "::",
1430            stringify!(node)
1431        )
1432    );
1433    assert_eq!(
1434        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).id as *const _ as usize },
1435        0usize,
1436        concat!(
1437            "Offset of field: ",
1438            stringify!(RNode__bindgen_ty_2),
1439            "::",
1440            stringify!(id)
1441        )
1442    );
1443    assert_eq!(
1444        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).argc as *const _ as usize },
1445        0usize,
1446        concat!(
1447            "Offset of field: ",
1448            stringify!(RNode__bindgen_ty_2),
1449            "::",
1450            stringify!(argc)
1451        )
1452    );
1453    assert_eq!(
1454        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).value as *const _ as usize },
1455        0usize,
1456        concat!(
1457            "Offset of field: ",
1458            stringify!(RNode__bindgen_ty_2),
1459            "::",
1460            stringify!(value)
1461        )
1462    );
1463}
1464impl ::std::fmt::Debug for RNode__bindgen_ty_2 {
1465    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1466        write!(f, "RNode__bindgen_ty_2 {{ union }}")
1467    }
1468}
1469#[repr(C)]
1470#[derive(Copy, Clone)]
1471pub union RNode__bindgen_ty_3 {
1472    pub node: *mut RNode,
1473    pub id: ID,
1474    pub state: ::std::os::raw::c_long,
1475    pub entry: *mut rb_global_entry,
1476    pub args: *mut rb_args_info,
1477    pub cnt: ::std::os::raw::c_long,
1478    pub value: VALUE,
1479    _bindgen_union_align: u64,
1480}
1481#[test]
1482fn bindgen_test_layout_RNode__bindgen_ty_3() {
1483    assert_eq!(
1484        ::std::mem::size_of::<RNode__bindgen_ty_3>(),
1485        8usize,
1486        concat!("Size of: ", stringify!(RNode__bindgen_ty_3))
1487    );
1488    assert_eq!(
1489        ::std::mem::align_of::<RNode__bindgen_ty_3>(),
1490        8usize,
1491        concat!("Alignment of ", stringify!(RNode__bindgen_ty_3))
1492    );
1493    assert_eq!(
1494        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).node as *const _ as usize },
1495        0usize,
1496        concat!(
1497            "Offset of field: ",
1498            stringify!(RNode__bindgen_ty_3),
1499            "::",
1500            stringify!(node)
1501        )
1502    );
1503    assert_eq!(
1504        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).id as *const _ as usize },
1505        0usize,
1506        concat!(
1507            "Offset of field: ",
1508            stringify!(RNode__bindgen_ty_3),
1509            "::",
1510            stringify!(id)
1511        )
1512    );
1513    assert_eq!(
1514        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).state as *const _ as usize },
1515        0usize,
1516        concat!(
1517            "Offset of field: ",
1518            stringify!(RNode__bindgen_ty_3),
1519            "::",
1520            stringify!(state)
1521        )
1522    );
1523    assert_eq!(
1524        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).entry as *const _ as usize },
1525        0usize,
1526        concat!(
1527            "Offset of field: ",
1528            stringify!(RNode__bindgen_ty_3),
1529            "::",
1530            stringify!(entry)
1531        )
1532    );
1533    assert_eq!(
1534        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).args as *const _ as usize },
1535        0usize,
1536        concat!(
1537            "Offset of field: ",
1538            stringify!(RNode__bindgen_ty_3),
1539            "::",
1540            stringify!(args)
1541        )
1542    );
1543    assert_eq!(
1544        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).cnt as *const _ as usize },
1545        0usize,
1546        concat!(
1547            "Offset of field: ",
1548            stringify!(RNode__bindgen_ty_3),
1549            "::",
1550            stringify!(cnt)
1551        )
1552    );
1553    assert_eq!(
1554        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).value as *const _ as usize },
1555        0usize,
1556        concat!(
1557            "Offset of field: ",
1558            stringify!(RNode__bindgen_ty_3),
1559            "::",
1560            stringify!(value)
1561        )
1562    );
1563}
1564impl ::std::fmt::Debug for RNode__bindgen_ty_3 {
1565    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1566        write!(f, "RNode__bindgen_ty_3 {{ union }}")
1567    }
1568}
1569#[test]
1570fn bindgen_test_layout_RNode() {
1571    assert_eq!(
1572        ::std::mem::size_of::<RNode>(),
1573        40usize,
1574        concat!("Size of: ", stringify!(RNode))
1575    );
1576    assert_eq!(
1577        ::std::mem::align_of::<RNode>(),
1578        8usize,
1579        concat!("Alignment of ", stringify!(RNode))
1580    );
1581    assert_eq!(
1582        unsafe { &(*(::std::ptr::null::<RNode>())).flags as *const _ as usize },
1583        0usize,
1584        concat!(
1585            "Offset of field: ",
1586            stringify!(RNode),
1587            "::",
1588            stringify!(flags)
1589        )
1590    );
1591    assert_eq!(
1592        unsafe { &(*(::std::ptr::null::<RNode>())).nd_reserved as *const _ as usize },
1593        8usize,
1594        concat!(
1595            "Offset of field: ",
1596            stringify!(RNode),
1597            "::",
1598            stringify!(nd_reserved)
1599        )
1600    );
1601    assert_eq!(
1602        unsafe { &(*(::std::ptr::null::<RNode>())).u1 as *const _ as usize },
1603        16usize,
1604        concat!("Offset of field: ", stringify!(RNode), "::", stringify!(u1))
1605    );
1606    assert_eq!(
1607        unsafe { &(*(::std::ptr::null::<RNode>())).u2 as *const _ as usize },
1608        24usize,
1609        concat!("Offset of field: ", stringify!(RNode), "::", stringify!(u2))
1610    );
1611    assert_eq!(
1612        unsafe { &(*(::std::ptr::null::<RNode>())).u3 as *const _ as usize },
1613        32usize,
1614        concat!("Offset of field: ", stringify!(RNode), "::", stringify!(u3))
1615    );
1616}
1617impl ::std::fmt::Debug for RNode {
1618    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1619        write!(
1620            f,
1621            "RNode {{ flags: {:?}, nd_reserved: {:?}, u1: {:?}, u2: {:?}, u3: {:?} }}",
1622            self.flags, self.nd_reserved, self.u1, self.u2, self.u3
1623        )
1624    }
1625}
1626pub type NODE = RNode;
1627#[repr(C)]
1628#[derive(Debug, Copy, Clone)]
1629pub struct rb_global_entry {
1630    pub var: *mut rb_global_variable,
1631    pub id: ID,
1632}
1633#[test]
1634fn bindgen_test_layout_rb_global_entry() {
1635    assert_eq!(
1636        ::std::mem::size_of::<rb_global_entry>(),
1637        16usize,
1638        concat!("Size of: ", stringify!(rb_global_entry))
1639    );
1640    assert_eq!(
1641        ::std::mem::align_of::<rb_global_entry>(),
1642        8usize,
1643        concat!("Alignment of ", stringify!(rb_global_entry))
1644    );
1645    assert_eq!(
1646        unsafe { &(*(::std::ptr::null::<rb_global_entry>())).var as *const _ as usize },
1647        0usize,
1648        concat!(
1649            "Offset of field: ",
1650            stringify!(rb_global_entry),
1651            "::",
1652            stringify!(var)
1653        )
1654    );
1655    assert_eq!(
1656        unsafe { &(*(::std::ptr::null::<rb_global_entry>())).id as *const _ as usize },
1657        8usize,
1658        concat!(
1659            "Offset of field: ",
1660            stringify!(rb_global_entry),
1661            "::",
1662            stringify!(id)
1663        )
1664    );
1665}
1666#[repr(C)]
1667#[derive(Debug, Copy, Clone)]
1668pub struct rb_args_info {
1669    pub pre_init: *mut NODE,
1670    pub post_init: *mut NODE,
1671    pub pre_args_num: ::std::os::raw::c_int,
1672    pub post_args_num: ::std::os::raw::c_int,
1673    pub first_post_arg: ID,
1674    pub rest_arg: ID,
1675    pub block_arg: ID,
1676    pub kw_args: *mut NODE,
1677    pub kw_rest_arg: *mut NODE,
1678    pub opt_args: *mut NODE,
1679}
1680#[test]
1681fn bindgen_test_layout_rb_args_info() {
1682    assert_eq!(
1683        ::std::mem::size_of::<rb_args_info>(),
1684        72usize,
1685        concat!("Size of: ", stringify!(rb_args_info))
1686    );
1687    assert_eq!(
1688        ::std::mem::align_of::<rb_args_info>(),
1689        8usize,
1690        concat!("Alignment of ", stringify!(rb_args_info))
1691    );
1692    assert_eq!(
1693        unsafe { &(*(::std::ptr::null::<rb_args_info>())).pre_init as *const _ as usize },
1694        0usize,
1695        concat!(
1696            "Offset of field: ",
1697            stringify!(rb_args_info),
1698            "::",
1699            stringify!(pre_init)
1700        )
1701    );
1702    assert_eq!(
1703        unsafe { &(*(::std::ptr::null::<rb_args_info>())).post_init as *const _ as usize },
1704        8usize,
1705        concat!(
1706            "Offset of field: ",
1707            stringify!(rb_args_info),
1708            "::",
1709            stringify!(post_init)
1710        )
1711    );
1712    assert_eq!(
1713        unsafe { &(*(::std::ptr::null::<rb_args_info>())).pre_args_num as *const _ as usize },
1714        16usize,
1715        concat!(
1716            "Offset of field: ",
1717            stringify!(rb_args_info),
1718            "::",
1719            stringify!(pre_args_num)
1720        )
1721    );
1722    assert_eq!(
1723        unsafe { &(*(::std::ptr::null::<rb_args_info>())).post_args_num as *const _ as usize },
1724        20usize,
1725        concat!(
1726            "Offset of field: ",
1727            stringify!(rb_args_info),
1728            "::",
1729            stringify!(post_args_num)
1730        )
1731    );
1732    assert_eq!(
1733        unsafe { &(*(::std::ptr::null::<rb_args_info>())).first_post_arg as *const _ as usize },
1734        24usize,
1735        concat!(
1736            "Offset of field: ",
1737            stringify!(rb_args_info),
1738            "::",
1739            stringify!(first_post_arg)
1740        )
1741    );
1742    assert_eq!(
1743        unsafe { &(*(::std::ptr::null::<rb_args_info>())).rest_arg as *const _ as usize },
1744        32usize,
1745        concat!(
1746            "Offset of field: ",
1747            stringify!(rb_args_info),
1748            "::",
1749            stringify!(rest_arg)
1750        )
1751    );
1752    assert_eq!(
1753        unsafe { &(*(::std::ptr::null::<rb_args_info>())).block_arg as *const _ as usize },
1754        40usize,
1755        concat!(
1756            "Offset of field: ",
1757            stringify!(rb_args_info),
1758            "::",
1759            stringify!(block_arg)
1760        )
1761    );
1762    assert_eq!(
1763        unsafe { &(*(::std::ptr::null::<rb_args_info>())).kw_args as *const _ as usize },
1764        48usize,
1765        concat!(
1766            "Offset of field: ",
1767            stringify!(rb_args_info),
1768            "::",
1769            stringify!(kw_args)
1770        )
1771    );
1772    assert_eq!(
1773        unsafe { &(*(::std::ptr::null::<rb_args_info>())).kw_rest_arg as *const _ as usize },
1774        56usize,
1775        concat!(
1776            "Offset of field: ",
1777            stringify!(rb_args_info),
1778            "::",
1779            stringify!(kw_rest_arg)
1780        )
1781    );
1782    assert_eq!(
1783        unsafe { &(*(::std::ptr::null::<rb_args_info>())).opt_args as *const _ as usize },
1784        64usize,
1785        concat!(
1786            "Offset of field: ",
1787            stringify!(rb_args_info),
1788            "::",
1789            stringify!(opt_args)
1790        )
1791    );
1792}
1793pub const rb_method_flag_t_NOEX_PUBLIC: rb_method_flag_t = 0;
1794pub const rb_method_flag_t_NOEX_NOSUPER: rb_method_flag_t = 1;
1795pub const rb_method_flag_t_NOEX_PRIVATE: rb_method_flag_t = 2;
1796pub const rb_method_flag_t_NOEX_PROTECTED: rb_method_flag_t = 4;
1797pub const rb_method_flag_t_NOEX_MASK: rb_method_flag_t = 6;
1798pub const rb_method_flag_t_NOEX_BASIC: rb_method_flag_t = 8;
1799pub const rb_method_flag_t_NOEX_UNDEF: rb_method_flag_t = 1;
1800pub const rb_method_flag_t_NOEX_MODFUNC: rb_method_flag_t = 18;
1801pub const rb_method_flag_t_NOEX_SUPER: rb_method_flag_t = 32;
1802pub const rb_method_flag_t_NOEX_VCALL: rb_method_flag_t = 64;
1803pub const rb_method_flag_t_NOEX_RESPONDS: rb_method_flag_t = 128;
1804pub const rb_method_flag_t_NOEX_BIT_WIDTH: rb_method_flag_t = 8;
1805pub const rb_method_flag_t_NOEX_SAFE_SHIFT_OFFSET: rb_method_flag_t = 8;
1806pub type rb_method_flag_t = ::std::os::raw::c_uint;
1807pub const rb_method_type_t_VM_METHOD_TYPE_ISEQ: rb_method_type_t = 0;
1808pub const rb_method_type_t_VM_METHOD_TYPE_CFUNC: rb_method_type_t = 1;
1809pub const rb_method_type_t_VM_METHOD_TYPE_ATTRSET: rb_method_type_t = 2;
1810pub const rb_method_type_t_VM_METHOD_TYPE_IVAR: rb_method_type_t = 3;
1811pub const rb_method_type_t_VM_METHOD_TYPE_BMETHOD: rb_method_type_t = 4;
1812pub const rb_method_type_t_VM_METHOD_TYPE_ZSUPER: rb_method_type_t = 5;
1813pub const rb_method_type_t_VM_METHOD_TYPE_UNDEF: rb_method_type_t = 6;
1814pub const rb_method_type_t_VM_METHOD_TYPE_NOTIMPLEMENTED: rb_method_type_t = 7;
1815pub const rb_method_type_t_VM_METHOD_TYPE_OPTIMIZED: rb_method_type_t = 8;
1816pub const rb_method_type_t_VM_METHOD_TYPE_MISSING: rb_method_type_t = 9;
1817pub const rb_method_type_t_VM_METHOD_TYPE_REFINED: rb_method_type_t = 10;
1818pub type rb_method_type_t = ::std::os::raw::c_uint;
1819#[repr(C)]
1820#[derive(Debug, Copy, Clone)]
1821pub struct rb_method_cfunc_struct {
1822    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1823    pub invoker: ::std::option::Option<
1824        unsafe extern "C" fn(
1825            func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1826            recv: VALUE,
1827            argc: ::std::os::raw::c_int,
1828            argv: *const VALUE,
1829        ) -> VALUE,
1830    >,
1831    pub argc: ::std::os::raw::c_int,
1832}
1833#[test]
1834fn bindgen_test_layout_rb_method_cfunc_struct() {
1835    assert_eq!(
1836        ::std::mem::size_of::<rb_method_cfunc_struct>(),
1837        24usize,
1838        concat!("Size of: ", stringify!(rb_method_cfunc_struct))
1839    );
1840    assert_eq!(
1841        ::std::mem::align_of::<rb_method_cfunc_struct>(),
1842        8usize,
1843        concat!("Alignment of ", stringify!(rb_method_cfunc_struct))
1844    );
1845    assert_eq!(
1846        unsafe { &(*(::std::ptr::null::<rb_method_cfunc_struct>())).func as *const _ as usize },
1847        0usize,
1848        concat!(
1849            "Offset of field: ",
1850            stringify!(rb_method_cfunc_struct),
1851            "::",
1852            stringify!(func)
1853        )
1854    );
1855    assert_eq!(
1856        unsafe { &(*(::std::ptr::null::<rb_method_cfunc_struct>())).invoker as *const _ as usize },
1857        8usize,
1858        concat!(
1859            "Offset of field: ",
1860            stringify!(rb_method_cfunc_struct),
1861            "::",
1862            stringify!(invoker)
1863        )
1864    );
1865    assert_eq!(
1866        unsafe { &(*(::std::ptr::null::<rb_method_cfunc_struct>())).argc as *const _ as usize },
1867        16usize,
1868        concat!(
1869            "Offset of field: ",
1870            stringify!(rb_method_cfunc_struct),
1871            "::",
1872            stringify!(argc)
1873        )
1874    );
1875}
1876pub type rb_method_cfunc_t = rb_method_cfunc_struct;
1877#[repr(C)]
1878#[derive(Debug, Copy, Clone)]
1879pub struct rb_method_attr_struct {
1880    pub id: ID,
1881    pub location: VALUE,
1882}
1883#[test]
1884fn bindgen_test_layout_rb_method_attr_struct() {
1885    assert_eq!(
1886        ::std::mem::size_of::<rb_method_attr_struct>(),
1887        16usize,
1888        concat!("Size of: ", stringify!(rb_method_attr_struct))
1889    );
1890    assert_eq!(
1891        ::std::mem::align_of::<rb_method_attr_struct>(),
1892        8usize,
1893        concat!("Alignment of ", stringify!(rb_method_attr_struct))
1894    );
1895    assert_eq!(
1896        unsafe { &(*(::std::ptr::null::<rb_method_attr_struct>())).id as *const _ as usize },
1897        0usize,
1898        concat!(
1899            "Offset of field: ",
1900            stringify!(rb_method_attr_struct),
1901            "::",
1902            stringify!(id)
1903        )
1904    );
1905    assert_eq!(
1906        unsafe { &(*(::std::ptr::null::<rb_method_attr_struct>())).location as *const _ as usize },
1907        8usize,
1908        concat!(
1909            "Offset of field: ",
1910            stringify!(rb_method_attr_struct),
1911            "::",
1912            stringify!(location)
1913        )
1914    );
1915}
1916pub type rb_method_attr_t = rb_method_attr_struct;
1917pub type rb_iseq_t = rb_iseq_struct;
1918#[repr(C)]
1919#[derive(Copy, Clone)]
1920pub struct rb_method_definition_struct {
1921    pub type_: rb_method_type_t,
1922    pub original_id: ID,
1923    pub body: rb_method_definition_struct__bindgen_ty_1,
1924    pub alias_count: ::std::os::raw::c_int,
1925}
1926#[repr(C)]
1927#[derive(Copy, Clone)]
1928pub union rb_method_definition_struct__bindgen_ty_1 {
1929    pub iseq: *mut rb_iseq_t,
1930    pub cfunc: rb_method_cfunc_t,
1931    pub attr: rb_method_attr_t,
1932    pub proc_: VALUE,
1933    pub optimize_type: rb_method_definition_struct__bindgen_ty_1_method_optimized_type,
1934    pub orig_me: *mut rb_method_entry_struct,
1935    _bindgen_union_align: [u64; 3usize],
1936}
1937pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE_SEND : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 0 ;
1938pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE_CALL : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 1 ;
1939pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE__MAX : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 2 ;
1940pub type rb_method_definition_struct__bindgen_ty_1_method_optimized_type = ::std::os::raw::c_uint;
1941#[test]
1942fn bindgen_test_layout_rb_method_definition_struct__bindgen_ty_1() {
1943    assert_eq!(
1944        ::std::mem::size_of::<rb_method_definition_struct__bindgen_ty_1>(),
1945        24usize,
1946        concat!(
1947            "Size of: ",
1948            stringify!(rb_method_definition_struct__bindgen_ty_1)
1949        )
1950    );
1951    assert_eq!(
1952        ::std::mem::align_of::<rb_method_definition_struct__bindgen_ty_1>(),
1953        8usize,
1954        concat!(
1955            "Alignment of ",
1956            stringify!(rb_method_definition_struct__bindgen_ty_1)
1957        )
1958    );
1959    assert_eq!(
1960        unsafe {
1961            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).iseq as *const _
1962                as usize
1963        },
1964        0usize,
1965        concat!(
1966            "Offset of field: ",
1967            stringify!(rb_method_definition_struct__bindgen_ty_1),
1968            "::",
1969            stringify!(iseq)
1970        )
1971    );
1972    assert_eq!(
1973        unsafe {
1974            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).cfunc as *const _
1975                as usize
1976        },
1977        0usize,
1978        concat!(
1979            "Offset of field: ",
1980            stringify!(rb_method_definition_struct__bindgen_ty_1),
1981            "::",
1982            stringify!(cfunc)
1983        )
1984    );
1985    assert_eq!(
1986        unsafe {
1987            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).attr as *const _
1988                as usize
1989        },
1990        0usize,
1991        concat!(
1992            "Offset of field: ",
1993            stringify!(rb_method_definition_struct__bindgen_ty_1),
1994            "::",
1995            stringify!(attr)
1996        )
1997    );
1998    assert_eq!(
1999        unsafe {
2000            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).proc_ as *const _
2001                as usize
2002        },
2003        0usize,
2004        concat!(
2005            "Offset of field: ",
2006            stringify!(rb_method_definition_struct__bindgen_ty_1),
2007            "::",
2008            stringify!(proc_)
2009        )
2010    );
2011    assert_eq!(
2012        unsafe {
2013            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).optimize_type
2014                as *const _ as usize
2015        },
2016        0usize,
2017        concat!(
2018            "Offset of field: ",
2019            stringify!(rb_method_definition_struct__bindgen_ty_1),
2020            "::",
2021            stringify!(optimize_type)
2022        )
2023    );
2024    assert_eq!(
2025        unsafe {
2026            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).orig_me
2027                as *const _ as usize
2028        },
2029        0usize,
2030        concat!(
2031            "Offset of field: ",
2032            stringify!(rb_method_definition_struct__bindgen_ty_1),
2033            "::",
2034            stringify!(orig_me)
2035        )
2036    );
2037}
2038impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
2039    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2040        write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
2041    }
2042}
2043#[test]
2044fn bindgen_test_layout_rb_method_definition_struct() {
2045    assert_eq!(
2046        ::std::mem::size_of::<rb_method_definition_struct>(),
2047        48usize,
2048        concat!("Size of: ", stringify!(rb_method_definition_struct))
2049    );
2050    assert_eq!(
2051        ::std::mem::align_of::<rb_method_definition_struct>(),
2052        8usize,
2053        concat!("Alignment of ", stringify!(rb_method_definition_struct))
2054    );
2055    assert_eq!(
2056        unsafe {
2057            &(*(::std::ptr::null::<rb_method_definition_struct>())).type_ as *const _ as usize
2058        },
2059        0usize,
2060        concat!(
2061            "Offset of field: ",
2062            stringify!(rb_method_definition_struct),
2063            "::",
2064            stringify!(type_)
2065        )
2066    );
2067    assert_eq!(
2068        unsafe {
2069            &(*(::std::ptr::null::<rb_method_definition_struct>())).original_id as *const _ as usize
2070        },
2071        8usize,
2072        concat!(
2073            "Offset of field: ",
2074            stringify!(rb_method_definition_struct),
2075            "::",
2076            stringify!(original_id)
2077        )
2078    );
2079    assert_eq!(
2080        unsafe {
2081            &(*(::std::ptr::null::<rb_method_definition_struct>())).body as *const _ as usize
2082        },
2083        16usize,
2084        concat!(
2085            "Offset of field: ",
2086            stringify!(rb_method_definition_struct),
2087            "::",
2088            stringify!(body)
2089        )
2090    );
2091    assert_eq!(
2092        unsafe {
2093            &(*(::std::ptr::null::<rb_method_definition_struct>())).alias_count as *const _ as usize
2094        },
2095        40usize,
2096        concat!(
2097            "Offset of field: ",
2098            stringify!(rb_method_definition_struct),
2099            "::",
2100            stringify!(alias_count)
2101        )
2102    );
2103}
2104impl ::std::fmt::Debug for rb_method_definition_struct {
2105    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2106        write ! ( f , "rb_method_definition_struct {{ type: {:?}, original_id: {:?}, body: {:?}, alias_count: {:?} }}" , self . type_ , self . original_id , self . body , self . alias_count )
2107    }
2108}
2109pub type rb_method_definition_t = rb_method_definition_struct;
2110#[repr(C)]
2111#[derive(Debug, Copy, Clone)]
2112pub struct rb_method_entry_struct {
2113    pub flag: rb_method_flag_t,
2114    pub mark: ::std::os::raw::c_char,
2115    pub def: *mut rb_method_definition_t,
2116    pub called_id: ID,
2117    pub klass: VALUE,
2118}
2119#[test]
2120fn bindgen_test_layout_rb_method_entry_struct() {
2121    assert_eq!(
2122        ::std::mem::size_of::<rb_method_entry_struct>(),
2123        32usize,
2124        concat!("Size of: ", stringify!(rb_method_entry_struct))
2125    );
2126    assert_eq!(
2127        ::std::mem::align_of::<rb_method_entry_struct>(),
2128        8usize,
2129        concat!("Alignment of ", stringify!(rb_method_entry_struct))
2130    );
2131    assert_eq!(
2132        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).flag as *const _ as usize },
2133        0usize,
2134        concat!(
2135            "Offset of field: ",
2136            stringify!(rb_method_entry_struct),
2137            "::",
2138            stringify!(flag)
2139        )
2140    );
2141    assert_eq!(
2142        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).mark as *const _ as usize },
2143        4usize,
2144        concat!(
2145            "Offset of field: ",
2146            stringify!(rb_method_entry_struct),
2147            "::",
2148            stringify!(mark)
2149        )
2150    );
2151    assert_eq!(
2152        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).def as *const _ as usize },
2153        8usize,
2154        concat!(
2155            "Offset of field: ",
2156            stringify!(rb_method_entry_struct),
2157            "::",
2158            stringify!(def)
2159        )
2160    );
2161    assert_eq!(
2162        unsafe {
2163            &(*(::std::ptr::null::<rb_method_entry_struct>())).called_id as *const _ as usize
2164        },
2165        16usize,
2166        concat!(
2167            "Offset of field: ",
2168            stringify!(rb_method_entry_struct),
2169            "::",
2170            stringify!(called_id)
2171        )
2172    );
2173    assert_eq!(
2174        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).klass as *const _ as usize },
2175        24usize,
2176        concat!(
2177            "Offset of field: ",
2178            stringify!(rb_method_entry_struct),
2179            "::",
2180            stringify!(klass)
2181        )
2182    );
2183}
2184pub type rb_method_entry_t = rb_method_entry_struct;
2185#[repr(C)]
2186#[derive(Debug, Copy, Clone)]
2187pub struct unlinked_method_entry_list_entry {
2188    pub next: *mut unlinked_method_entry_list_entry,
2189    pub me: *mut rb_method_entry_t,
2190}
2191#[test]
2192fn bindgen_test_layout_unlinked_method_entry_list_entry() {
2193    assert_eq!(
2194        ::std::mem::size_of::<unlinked_method_entry_list_entry>(),
2195        16usize,
2196        concat!("Size of: ", stringify!(unlinked_method_entry_list_entry))
2197    );
2198    assert_eq!(
2199        ::std::mem::align_of::<unlinked_method_entry_list_entry>(),
2200        8usize,
2201        concat!(
2202            "Alignment of ",
2203            stringify!(unlinked_method_entry_list_entry)
2204        )
2205    );
2206    assert_eq!(
2207        unsafe {
2208            &(*(::std::ptr::null::<unlinked_method_entry_list_entry>())).next as *const _ as usize
2209        },
2210        0usize,
2211        concat!(
2212            "Offset of field: ",
2213            stringify!(unlinked_method_entry_list_entry),
2214            "::",
2215            stringify!(next)
2216        )
2217    );
2218    assert_eq!(
2219        unsafe {
2220            &(*(::std::ptr::null::<unlinked_method_entry_list_entry>())).me as *const _ as usize
2221        },
2222        8usize,
2223        concat!(
2224            "Offset of field: ",
2225            stringify!(unlinked_method_entry_list_entry),
2226            "::",
2227            stringify!(me)
2228        )
2229    );
2230}
2231pub type rb_atomic_t = ::std::os::raw::c_uint;
2232pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
2233pub type rb_thread_id_t = pthread_t;
2234pub type rb_thread_lock_t = pthread_mutex_t;
2235#[repr(C)]
2236#[derive(Copy, Clone)]
2237pub struct rb_thread_cond_struct {
2238    pub cond: pthread_cond_t,
2239    pub clockid: clockid_t,
2240}
2241#[test]
2242fn bindgen_test_layout_rb_thread_cond_struct() {
2243    assert_eq!(
2244        ::std::mem::size_of::<rb_thread_cond_struct>(),
2245        56usize,
2246        concat!("Size of: ", stringify!(rb_thread_cond_struct))
2247    );
2248    assert_eq!(
2249        ::std::mem::align_of::<rb_thread_cond_struct>(),
2250        8usize,
2251        concat!("Alignment of ", stringify!(rb_thread_cond_struct))
2252    );
2253    assert_eq!(
2254        unsafe { &(*(::std::ptr::null::<rb_thread_cond_struct>())).cond as *const _ as usize },
2255        0usize,
2256        concat!(
2257            "Offset of field: ",
2258            stringify!(rb_thread_cond_struct),
2259            "::",
2260            stringify!(cond)
2261        )
2262    );
2263    assert_eq!(
2264        unsafe { &(*(::std::ptr::null::<rb_thread_cond_struct>())).clockid as *const _ as usize },
2265        48usize,
2266        concat!(
2267            "Offset of field: ",
2268            stringify!(rb_thread_cond_struct),
2269            "::",
2270            stringify!(clockid)
2271        )
2272    );
2273}
2274impl ::std::fmt::Debug for rb_thread_cond_struct {
2275    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2276        write!(
2277            f,
2278            "rb_thread_cond_struct {{ cond: {:?}, clockid: {:?} }}",
2279            self.cond, self.clockid
2280        )
2281    }
2282}
2283pub type rb_thread_cond_t = rb_thread_cond_struct;
2284#[repr(C)]
2285#[derive(Copy, Clone)]
2286pub struct native_thread_data_struct {
2287    pub signal_thread_list: *mut ::std::os::raw::c_void,
2288    pub sleep_cond: rb_thread_cond_t,
2289}
2290#[test]
2291fn bindgen_test_layout_native_thread_data_struct() {
2292    assert_eq!(
2293        ::std::mem::size_of::<native_thread_data_struct>(),
2294        64usize,
2295        concat!("Size of: ", stringify!(native_thread_data_struct))
2296    );
2297    assert_eq!(
2298        ::std::mem::align_of::<native_thread_data_struct>(),
2299        8usize,
2300        concat!("Alignment of ", stringify!(native_thread_data_struct))
2301    );
2302    assert_eq!(
2303        unsafe {
2304            &(*(::std::ptr::null::<native_thread_data_struct>())).signal_thread_list as *const _
2305                as usize
2306        },
2307        0usize,
2308        concat!(
2309            "Offset of field: ",
2310            stringify!(native_thread_data_struct),
2311            "::",
2312            stringify!(signal_thread_list)
2313        )
2314    );
2315    assert_eq!(
2316        unsafe {
2317            &(*(::std::ptr::null::<native_thread_data_struct>())).sleep_cond as *const _ as usize
2318        },
2319        8usize,
2320        concat!(
2321            "Offset of field: ",
2322            stringify!(native_thread_data_struct),
2323            "::",
2324            stringify!(sleep_cond)
2325        )
2326    );
2327}
2328impl ::std::fmt::Debug for native_thread_data_struct {
2329    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2330        write!(
2331            f,
2332            "native_thread_data_struct {{ signal_thread_list: {:?}, sleep_cond: {:?} }}",
2333            self.signal_thread_list, self.sleep_cond
2334        )
2335    }
2336}
2337pub type native_thread_data_t = native_thread_data_struct;
2338#[repr(C)]
2339#[derive(Copy, Clone)]
2340pub struct rb_global_vm_lock_struct {
2341    pub acquired: ::std::os::raw::c_ulong,
2342    pub lock: pthread_mutex_t,
2343    pub waiting: ::std::os::raw::c_ulong,
2344    pub cond: rb_thread_cond_t,
2345    pub switch_cond: rb_thread_cond_t,
2346    pub switch_wait_cond: rb_thread_cond_t,
2347    pub need_yield: ::std::os::raw::c_int,
2348    pub wait_yield: ::std::os::raw::c_int,
2349}
2350#[test]
2351fn bindgen_test_layout_rb_global_vm_lock_struct() {
2352    assert_eq!(
2353        ::std::mem::size_of::<rb_global_vm_lock_struct>(),
2354        232usize,
2355        concat!("Size of: ", stringify!(rb_global_vm_lock_struct))
2356    );
2357    assert_eq!(
2358        ::std::mem::align_of::<rb_global_vm_lock_struct>(),
2359        8usize,
2360        concat!("Alignment of ", stringify!(rb_global_vm_lock_struct))
2361    );
2362    assert_eq!(
2363        unsafe {
2364            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).acquired as *const _ as usize
2365        },
2366        0usize,
2367        concat!(
2368            "Offset of field: ",
2369            stringify!(rb_global_vm_lock_struct),
2370            "::",
2371            stringify!(acquired)
2372        )
2373    );
2374    assert_eq!(
2375        unsafe { &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).lock as *const _ as usize },
2376        8usize,
2377        concat!(
2378            "Offset of field: ",
2379            stringify!(rb_global_vm_lock_struct),
2380            "::",
2381            stringify!(lock)
2382        )
2383    );
2384    assert_eq!(
2385        unsafe {
2386            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).waiting as *const _ as usize
2387        },
2388        48usize,
2389        concat!(
2390            "Offset of field: ",
2391            stringify!(rb_global_vm_lock_struct),
2392            "::",
2393            stringify!(waiting)
2394        )
2395    );
2396    assert_eq!(
2397        unsafe { &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).cond as *const _ as usize },
2398        56usize,
2399        concat!(
2400            "Offset of field: ",
2401            stringify!(rb_global_vm_lock_struct),
2402            "::",
2403            stringify!(cond)
2404        )
2405    );
2406    assert_eq!(
2407        unsafe {
2408            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).switch_cond as *const _ as usize
2409        },
2410        112usize,
2411        concat!(
2412            "Offset of field: ",
2413            stringify!(rb_global_vm_lock_struct),
2414            "::",
2415            stringify!(switch_cond)
2416        )
2417    );
2418    assert_eq!(
2419        unsafe {
2420            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).switch_wait_cond as *const _
2421                as usize
2422        },
2423        168usize,
2424        concat!(
2425            "Offset of field: ",
2426            stringify!(rb_global_vm_lock_struct),
2427            "::",
2428            stringify!(switch_wait_cond)
2429        )
2430    );
2431    assert_eq!(
2432        unsafe {
2433            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).need_yield as *const _ as usize
2434        },
2435        224usize,
2436        concat!(
2437            "Offset of field: ",
2438            stringify!(rb_global_vm_lock_struct),
2439            "::",
2440            stringify!(need_yield)
2441        )
2442    );
2443    assert_eq!(
2444        unsafe {
2445            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).wait_yield as *const _ as usize
2446        },
2447        228usize,
2448        concat!(
2449            "Offset of field: ",
2450            stringify!(rb_global_vm_lock_struct),
2451            "::",
2452            stringify!(wait_yield)
2453        )
2454    );
2455}
2456impl ::std::fmt::Debug for rb_global_vm_lock_struct {
2457    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2458        write ! ( f , "rb_global_vm_lock_struct {{ acquired: {:?}, lock: {:?}, waiting: {:?}, cond: {:?}, switch_cond: {:?}, switch_wait_cond: {:?}, need_yield: {:?}, wait_yield: {:?} }}" , self . acquired , self . lock , self . waiting , self . cond , self . switch_cond , self . switch_wait_cond , self . need_yield , self . wait_yield )
2459    }
2460}
2461pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
2462#[repr(C)]
2463#[derive(Debug, Copy, Clone)]
2464pub struct __jmp_buf_tag {
2465    pub __jmpbuf: __jmp_buf,
2466    pub __mask_was_saved: ::std::os::raw::c_int,
2467    pub __saved_mask: __sigset_t,
2468}
2469#[test]
2470fn bindgen_test_layout___jmp_buf_tag() {
2471    assert_eq!(
2472        ::std::mem::size_of::<__jmp_buf_tag>(),
2473        200usize,
2474        concat!("Size of: ", stringify!(__jmp_buf_tag))
2475    );
2476    assert_eq!(
2477        ::std::mem::align_of::<__jmp_buf_tag>(),
2478        8usize,
2479        concat!("Alignment of ", stringify!(__jmp_buf_tag))
2480    );
2481    assert_eq!(
2482        unsafe { &(*(::std::ptr::null::<__jmp_buf_tag>())).__jmpbuf as *const _ as usize },
2483        0usize,
2484        concat!(
2485            "Offset of field: ",
2486            stringify!(__jmp_buf_tag),
2487            "::",
2488            stringify!(__jmpbuf)
2489        )
2490    );
2491    assert_eq!(
2492        unsafe { &(*(::std::ptr::null::<__jmp_buf_tag>())).__mask_was_saved as *const _ as usize },
2493        64usize,
2494        concat!(
2495            "Offset of field: ",
2496            stringify!(__jmp_buf_tag),
2497            "::",
2498            stringify!(__mask_was_saved)
2499        )
2500    );
2501    assert_eq!(
2502        unsafe { &(*(::std::ptr::null::<__jmp_buf_tag>())).__saved_mask as *const _ as usize },
2503        72usize,
2504        concat!(
2505            "Offset of field: ",
2506            stringify!(__jmp_buf_tag),
2507            "::",
2508            stringify!(__saved_mask)
2509        )
2510    );
2511}
2512pub type jmp_buf = [__jmp_buf_tag; 1usize];
2513pub type rb_num_t = usize;
2514#[repr(C)]
2515#[derive(Debug, Copy, Clone)]
2516pub struct iseq_compile_data_ensure_node_stack {
2517    _unused: [u8; 0],
2518}
2519pub type rb_compile_option_t = rb_compile_option_struct;
2520#[repr(C)]
2521#[derive(Copy, Clone)]
2522pub struct iseq_inline_cache_entry {
2523    pub ic_vmstat: VALUE,
2524    pub ic_class: VALUE,
2525    pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
2526}
2527#[repr(C)]
2528#[derive(Copy, Clone)]
2529pub union iseq_inline_cache_entry__bindgen_ty_1 {
2530    pub value: VALUE,
2531    pub index: ::std::os::raw::c_long,
2532    _bindgen_union_align: u64,
2533}
2534#[test]
2535fn bindgen_test_layout_iseq_inline_cache_entry__bindgen_ty_1() {
2536    assert_eq!(
2537        ::std::mem::size_of::<iseq_inline_cache_entry__bindgen_ty_1>(),
2538        8usize,
2539        concat!(
2540            "Size of: ",
2541            stringify!(iseq_inline_cache_entry__bindgen_ty_1)
2542        )
2543    );
2544    assert_eq!(
2545        ::std::mem::align_of::<iseq_inline_cache_entry__bindgen_ty_1>(),
2546        8usize,
2547        concat!(
2548            "Alignment of ",
2549            stringify!(iseq_inline_cache_entry__bindgen_ty_1)
2550        )
2551    );
2552    assert_eq!(
2553        unsafe {
2554            &(*(::std::ptr::null::<iseq_inline_cache_entry__bindgen_ty_1>())).value as *const _
2555                as usize
2556        },
2557        0usize,
2558        concat!(
2559            "Offset of field: ",
2560            stringify!(iseq_inline_cache_entry__bindgen_ty_1),
2561            "::",
2562            stringify!(value)
2563        )
2564    );
2565    assert_eq!(
2566        unsafe {
2567            &(*(::std::ptr::null::<iseq_inline_cache_entry__bindgen_ty_1>())).index as *const _
2568                as usize
2569        },
2570        0usize,
2571        concat!(
2572            "Offset of field: ",
2573            stringify!(iseq_inline_cache_entry__bindgen_ty_1),
2574            "::",
2575            stringify!(index)
2576        )
2577    );
2578}
2579impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
2580    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2581        write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
2582    }
2583}
2584#[test]
2585fn bindgen_test_layout_iseq_inline_cache_entry() {
2586    assert_eq!(
2587        ::std::mem::size_of::<iseq_inline_cache_entry>(),
2588        24usize,
2589        concat!("Size of: ", stringify!(iseq_inline_cache_entry))
2590    );
2591    assert_eq!(
2592        ::std::mem::align_of::<iseq_inline_cache_entry>(),
2593        8usize,
2594        concat!("Alignment of ", stringify!(iseq_inline_cache_entry))
2595    );
2596    assert_eq!(
2597        unsafe {
2598            &(*(::std::ptr::null::<iseq_inline_cache_entry>())).ic_vmstat as *const _ as usize
2599        },
2600        0usize,
2601        concat!(
2602            "Offset of field: ",
2603            stringify!(iseq_inline_cache_entry),
2604            "::",
2605            stringify!(ic_vmstat)
2606        )
2607    );
2608    assert_eq!(
2609        unsafe {
2610            &(*(::std::ptr::null::<iseq_inline_cache_entry>())).ic_class as *const _ as usize
2611        },
2612        8usize,
2613        concat!(
2614            "Offset of field: ",
2615            stringify!(iseq_inline_cache_entry),
2616            "::",
2617            stringify!(ic_class)
2618        )
2619    );
2620    assert_eq!(
2621        unsafe {
2622            &(*(::std::ptr::null::<iseq_inline_cache_entry>())).ic_value as *const _ as usize
2623        },
2624        16usize,
2625        concat!(
2626            "Offset of field: ",
2627            stringify!(iseq_inline_cache_entry),
2628            "::",
2629            stringify!(ic_value)
2630        )
2631    );
2632}
2633impl ::std::fmt::Debug for iseq_inline_cache_entry {
2634    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2635        write!(
2636            f,
2637            "iseq_inline_cache_entry {{ ic_vmstat: {:?}, ic_class: {:?}, ic_value: {:?} }}",
2638            self.ic_vmstat, self.ic_class, self.ic_value
2639        )
2640    }
2641}
2642#[repr(C)]
2643#[derive(Copy, Clone)]
2644pub struct rb_call_info_struct {
2645    pub mid: ID,
2646    pub flag: VALUE,
2647    pub orig_argc: ::std::os::raw::c_int,
2648    pub blockiseq: *mut rb_iseq_t,
2649    pub vmstat: VALUE,
2650    pub klass: VALUE,
2651    pub me: *const rb_method_entry_t,
2652    pub defined_class: VALUE,
2653    pub argc: ::std::os::raw::c_int,
2654    pub blockptr: *mut rb_block_struct,
2655    pub recv: VALUE,
2656    pub aux: rb_call_info_struct__bindgen_ty_1,
2657    pub call: ::std::option::Option<
2658        unsafe extern "C" fn(
2659            th: *mut rb_thread_struct,
2660            cfp: *mut rb_control_frame_struct,
2661            ci: *mut rb_call_info_struct,
2662        ) -> VALUE,
2663    >,
2664}
2665#[repr(C)]
2666#[derive(Copy, Clone)]
2667pub union rb_call_info_struct__bindgen_ty_1 {
2668    pub opt_pc: ::std::os::raw::c_int,
2669    pub index: ::std::os::raw::c_long,
2670    pub missing_reason: ::std::os::raw::c_int,
2671    pub inc_sp: ::std::os::raw::c_int,
2672    _bindgen_union_align: u64,
2673}
2674#[test]
2675fn bindgen_test_layout_rb_call_info_struct__bindgen_ty_1() {
2676    assert_eq!(
2677        ::std::mem::size_of::<rb_call_info_struct__bindgen_ty_1>(),
2678        8usize,
2679        concat!("Size of: ", stringify!(rb_call_info_struct__bindgen_ty_1))
2680    );
2681    assert_eq!(
2682        ::std::mem::align_of::<rb_call_info_struct__bindgen_ty_1>(),
2683        8usize,
2684        concat!(
2685            "Alignment of ",
2686            stringify!(rb_call_info_struct__bindgen_ty_1)
2687        )
2688    );
2689    assert_eq!(
2690        unsafe {
2691            &(*(::std::ptr::null::<rb_call_info_struct__bindgen_ty_1>())).opt_pc as *const _
2692                as usize
2693        },
2694        0usize,
2695        concat!(
2696            "Offset of field: ",
2697            stringify!(rb_call_info_struct__bindgen_ty_1),
2698            "::",
2699            stringify!(opt_pc)
2700        )
2701    );
2702    assert_eq!(
2703        unsafe {
2704            &(*(::std::ptr::null::<rb_call_info_struct__bindgen_ty_1>())).index as *const _ as usize
2705        },
2706        0usize,
2707        concat!(
2708            "Offset of field: ",
2709            stringify!(rb_call_info_struct__bindgen_ty_1),
2710            "::",
2711            stringify!(index)
2712        )
2713    );
2714    assert_eq!(
2715        unsafe {
2716            &(*(::std::ptr::null::<rb_call_info_struct__bindgen_ty_1>())).missing_reason as *const _
2717                as usize
2718        },
2719        0usize,
2720        concat!(
2721            "Offset of field: ",
2722            stringify!(rb_call_info_struct__bindgen_ty_1),
2723            "::",
2724            stringify!(missing_reason)
2725        )
2726    );
2727    assert_eq!(
2728        unsafe {
2729            &(*(::std::ptr::null::<rb_call_info_struct__bindgen_ty_1>())).inc_sp as *const _
2730                as usize
2731        },
2732        0usize,
2733        concat!(
2734            "Offset of field: ",
2735            stringify!(rb_call_info_struct__bindgen_ty_1),
2736            "::",
2737            stringify!(inc_sp)
2738        )
2739    );
2740}
2741impl ::std::fmt::Debug for rb_call_info_struct__bindgen_ty_1 {
2742    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2743        write!(f, "rb_call_info_struct__bindgen_ty_1 {{ union }}")
2744    }
2745}
2746#[test]
2747fn bindgen_test_layout_rb_call_info_struct() {
2748    assert_eq!(
2749        ::std::mem::size_of::<rb_call_info_struct>(),
2750        104usize,
2751        concat!("Size of: ", stringify!(rb_call_info_struct))
2752    );
2753    assert_eq!(
2754        ::std::mem::align_of::<rb_call_info_struct>(),
2755        8usize,
2756        concat!("Alignment of ", stringify!(rb_call_info_struct))
2757    );
2758    assert_eq!(
2759        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).mid as *const _ as usize },
2760        0usize,
2761        concat!(
2762            "Offset of field: ",
2763            stringify!(rb_call_info_struct),
2764            "::",
2765            stringify!(mid)
2766        )
2767    );
2768    assert_eq!(
2769        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).flag as *const _ as usize },
2770        8usize,
2771        concat!(
2772            "Offset of field: ",
2773            stringify!(rb_call_info_struct),
2774            "::",
2775            stringify!(flag)
2776        )
2777    );
2778    assert_eq!(
2779        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).orig_argc as *const _ as usize },
2780        16usize,
2781        concat!(
2782            "Offset of field: ",
2783            stringify!(rb_call_info_struct),
2784            "::",
2785            stringify!(orig_argc)
2786        )
2787    );
2788    assert_eq!(
2789        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).blockiseq as *const _ as usize },
2790        24usize,
2791        concat!(
2792            "Offset of field: ",
2793            stringify!(rb_call_info_struct),
2794            "::",
2795            stringify!(blockiseq)
2796        )
2797    );
2798    assert_eq!(
2799        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).vmstat as *const _ as usize },
2800        32usize,
2801        concat!(
2802            "Offset of field: ",
2803            stringify!(rb_call_info_struct),
2804            "::",
2805            stringify!(vmstat)
2806        )
2807    );
2808    assert_eq!(
2809        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).klass as *const _ as usize },
2810        40usize,
2811        concat!(
2812            "Offset of field: ",
2813            stringify!(rb_call_info_struct),
2814            "::",
2815            stringify!(klass)
2816        )
2817    );
2818    assert_eq!(
2819        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).me as *const _ as usize },
2820        48usize,
2821        concat!(
2822            "Offset of field: ",
2823            stringify!(rb_call_info_struct),
2824            "::",
2825            stringify!(me)
2826        )
2827    );
2828    assert_eq!(
2829        unsafe {
2830            &(*(::std::ptr::null::<rb_call_info_struct>())).defined_class as *const _ as usize
2831        },
2832        56usize,
2833        concat!(
2834            "Offset of field: ",
2835            stringify!(rb_call_info_struct),
2836            "::",
2837            stringify!(defined_class)
2838        )
2839    );
2840    assert_eq!(
2841        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).argc as *const _ as usize },
2842        64usize,
2843        concat!(
2844            "Offset of field: ",
2845            stringify!(rb_call_info_struct),
2846            "::",
2847            stringify!(argc)
2848        )
2849    );
2850    assert_eq!(
2851        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).blockptr as *const _ as usize },
2852        72usize,
2853        concat!(
2854            "Offset of field: ",
2855            stringify!(rb_call_info_struct),
2856            "::",
2857            stringify!(blockptr)
2858        )
2859    );
2860    assert_eq!(
2861        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).recv as *const _ as usize },
2862        80usize,
2863        concat!(
2864            "Offset of field: ",
2865            stringify!(rb_call_info_struct),
2866            "::",
2867            stringify!(recv)
2868        )
2869    );
2870    assert_eq!(
2871        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).aux as *const _ as usize },
2872        88usize,
2873        concat!(
2874            "Offset of field: ",
2875            stringify!(rb_call_info_struct),
2876            "::",
2877            stringify!(aux)
2878        )
2879    );
2880    assert_eq!(
2881        unsafe { &(*(::std::ptr::null::<rb_call_info_struct>())).call as *const _ as usize },
2882        96usize,
2883        concat!(
2884            "Offset of field: ",
2885            stringify!(rb_call_info_struct),
2886            "::",
2887            stringify!(call)
2888        )
2889    );
2890}
2891impl ::std::fmt::Debug for rb_call_info_struct {
2892    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2893        write ! ( f , "rb_call_info_struct {{ mid: {:?}, flag: {:?}, orig_argc: {:?}, blockiseq: {:?}, vmstat: {:?}, klass: {:?}, me: {:?}, defined_class: {:?}, argc: {:?}, blockptr: {:?}, recv: {:?}, aux: {:?}, call: {:?} }}" , self . mid , self . flag , self . orig_argc , self . blockiseq , self . vmstat , self . klass , self . me , self . defined_class , self . argc , self . blockptr , self . recv , self . aux , self . call )
2894    }
2895}
2896pub type rb_call_info_t = rb_call_info_struct;
2897#[repr(C)]
2898#[derive(Debug, Copy, Clone)]
2899pub struct rb_iseq_location_struct {
2900    pub path: VALUE,
2901    pub absolute_path: VALUE,
2902    pub base_label: VALUE,
2903    pub label: VALUE,
2904    pub first_lineno: usize,
2905}
2906#[test]
2907fn bindgen_test_layout_rb_iseq_location_struct() {
2908    assert_eq!(
2909        ::std::mem::size_of::<rb_iseq_location_struct>(),
2910        40usize,
2911        concat!("Size of: ", stringify!(rb_iseq_location_struct))
2912    );
2913    assert_eq!(
2914        ::std::mem::align_of::<rb_iseq_location_struct>(),
2915        8usize,
2916        concat!("Alignment of ", stringify!(rb_iseq_location_struct))
2917    );
2918    assert_eq!(
2919        unsafe { &(*(::std::ptr::null::<rb_iseq_location_struct>())).path as *const _ as usize },
2920        0usize,
2921        concat!(
2922            "Offset of field: ",
2923            stringify!(rb_iseq_location_struct),
2924            "::",
2925            stringify!(path)
2926        )
2927    );
2928    assert_eq!(
2929        unsafe {
2930            &(*(::std::ptr::null::<rb_iseq_location_struct>())).absolute_path as *const _ as usize
2931        },
2932        8usize,
2933        concat!(
2934            "Offset of field: ",
2935            stringify!(rb_iseq_location_struct),
2936            "::",
2937            stringify!(absolute_path)
2938        )
2939    );
2940    assert_eq!(
2941        unsafe {
2942            &(*(::std::ptr::null::<rb_iseq_location_struct>())).base_label as *const _ as usize
2943        },
2944        16usize,
2945        concat!(
2946            "Offset of field: ",
2947            stringify!(rb_iseq_location_struct),
2948            "::",
2949            stringify!(base_label)
2950        )
2951    );
2952    assert_eq!(
2953        unsafe { &(*(::std::ptr::null::<rb_iseq_location_struct>())).label as *const _ as usize },
2954        24usize,
2955        concat!(
2956            "Offset of field: ",
2957            stringify!(rb_iseq_location_struct),
2958            "::",
2959            stringify!(label)
2960        )
2961    );
2962    assert_eq!(
2963        unsafe {
2964            &(*(::std::ptr::null::<rb_iseq_location_struct>())).first_lineno as *const _ as usize
2965        },
2966        32usize,
2967        concat!(
2968            "Offset of field: ",
2969            stringify!(rb_iseq_location_struct),
2970            "::",
2971            stringify!(first_lineno)
2972        )
2973    );
2974}
2975pub type rb_iseq_location_t = rb_iseq_location_struct;
2976#[repr(C)]
2977#[derive(Debug, Copy, Clone)]
2978pub struct rb_iseq_struct {
2979    pub type_: rb_iseq_struct_iseq_type,
2980    pub location: rb_iseq_location_t,
2981    pub iseq: *mut VALUE,
2982    pub iseq_encoded: *mut VALUE,
2983    pub iseq_size: ::std::os::raw::c_ulong,
2984    pub mark_ary: VALUE,
2985    pub coverage: VALUE,
2986    pub line_info_table: *mut iseq_line_info_entry,
2987    pub line_info_size: usize,
2988    pub local_table: *mut ID,
2989    pub local_table_size: ::std::os::raw::c_int,
2990    pub local_size: ::std::os::raw::c_int,
2991    pub ic_entries: *mut iseq_inline_cache_entry,
2992    pub ic_size: ::std::os::raw::c_int,
2993    pub callinfo_entries: *mut rb_call_info_t,
2994    pub callinfo_size: ::std::os::raw::c_int,
2995    pub argc: ::std::os::raw::c_int,
2996    pub arg_simple: ::std::os::raw::c_int,
2997    pub arg_rest: ::std::os::raw::c_int,
2998    pub arg_block: ::std::os::raw::c_int,
2999    pub arg_opts: ::std::os::raw::c_int,
3000    pub arg_post_len: ::std::os::raw::c_int,
3001    pub arg_post_start: ::std::os::raw::c_int,
3002    pub arg_size: ::std::os::raw::c_int,
3003    pub arg_opt_table: *mut VALUE,
3004    pub arg_keyword: ::std::os::raw::c_int,
3005    pub arg_keyword_check: ::std::os::raw::c_int,
3006    pub arg_keywords: ::std::os::raw::c_int,
3007    pub arg_keyword_table: *mut ID,
3008    pub stack_max: usize,
3009    pub catch_table: *mut iseq_catch_table_entry,
3010    pub catch_table_size: ::std::os::raw::c_int,
3011    pub parent_iseq: *mut rb_iseq_struct,
3012    pub local_iseq: *mut rb_iseq_struct,
3013    pub self_: VALUE,
3014    pub orig: VALUE,
3015    pub cref_stack: *mut NODE,
3016    pub klass: VALUE,
3017    pub defined_method_id: ID,
3018    pub flip_cnt: rb_num_t,
3019    pub compile_data: *mut iseq_compile_data,
3020}
3021pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_TOP: rb_iseq_struct_iseq_type = 0;
3022pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_struct_iseq_type = 1;
3023pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_struct_iseq_type = 2;
3024pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_struct_iseq_type = 3;
3025pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_struct_iseq_type = 4;
3026pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_struct_iseq_type = 5;
3027pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_struct_iseq_type = 6;
3028pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_struct_iseq_type = 7;
3029pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_DEFINED_GUARD: rb_iseq_struct_iseq_type = 8;
3030pub type rb_iseq_struct_iseq_type = ::std::os::raw::c_uint;
3031#[test]
3032fn bindgen_test_layout_rb_iseq_struct() {
3033    assert_eq!(
3034        ::std::mem::size_of::<rb_iseq_struct>(),
3035        312usize,
3036        concat!("Size of: ", stringify!(rb_iseq_struct))
3037    );
3038    assert_eq!(
3039        ::std::mem::align_of::<rb_iseq_struct>(),
3040        8usize,
3041        concat!("Alignment of ", stringify!(rb_iseq_struct))
3042    );
3043    assert_eq!(
3044        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).type_ as *const _ as usize },
3045        0usize,
3046        concat!(
3047            "Offset of field: ",
3048            stringify!(rb_iseq_struct),
3049            "::",
3050            stringify!(type_)
3051        )
3052    );
3053    assert_eq!(
3054        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).location as *const _ as usize },
3055        8usize,
3056        concat!(
3057            "Offset of field: ",
3058            stringify!(rb_iseq_struct),
3059            "::",
3060            stringify!(location)
3061        )
3062    );
3063    assert_eq!(
3064        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).iseq as *const _ as usize },
3065        48usize,
3066        concat!(
3067            "Offset of field: ",
3068            stringify!(rb_iseq_struct),
3069            "::",
3070            stringify!(iseq)
3071        )
3072    );
3073    assert_eq!(
3074        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).iseq_encoded as *const _ as usize },
3075        56usize,
3076        concat!(
3077            "Offset of field: ",
3078            stringify!(rb_iseq_struct),
3079            "::",
3080            stringify!(iseq_encoded)
3081        )
3082    );
3083    assert_eq!(
3084        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).iseq_size as *const _ as usize },
3085        64usize,
3086        concat!(
3087            "Offset of field: ",
3088            stringify!(rb_iseq_struct),
3089            "::",
3090            stringify!(iseq_size)
3091        )
3092    );
3093    assert_eq!(
3094        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).mark_ary as *const _ as usize },
3095        72usize,
3096        concat!(
3097            "Offset of field: ",
3098            stringify!(rb_iseq_struct),
3099            "::",
3100            stringify!(mark_ary)
3101        )
3102    );
3103    assert_eq!(
3104        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).coverage as *const _ as usize },
3105        80usize,
3106        concat!(
3107            "Offset of field: ",
3108            stringify!(rb_iseq_struct),
3109            "::",
3110            stringify!(coverage)
3111        )
3112    );
3113    assert_eq!(
3114        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).line_info_table as *const _ as usize },
3115        88usize,
3116        concat!(
3117            "Offset of field: ",
3118            stringify!(rb_iseq_struct),
3119            "::",
3120            stringify!(line_info_table)
3121        )
3122    );
3123    assert_eq!(
3124        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).line_info_size as *const _ as usize },
3125        96usize,
3126        concat!(
3127            "Offset of field: ",
3128            stringify!(rb_iseq_struct),
3129            "::",
3130            stringify!(line_info_size)
3131        )
3132    );
3133    assert_eq!(
3134        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_table as *const _ as usize },
3135        104usize,
3136        concat!(
3137            "Offset of field: ",
3138            stringify!(rb_iseq_struct),
3139            "::",
3140            stringify!(local_table)
3141        )
3142    );
3143    assert_eq!(
3144        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_table_size as *const _ as usize },
3145        112usize,
3146        concat!(
3147            "Offset of field: ",
3148            stringify!(rb_iseq_struct),
3149            "::",
3150            stringify!(local_table_size)
3151        )
3152    );
3153    assert_eq!(
3154        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_size as *const _ as usize },
3155        116usize,
3156        concat!(
3157            "Offset of field: ",
3158            stringify!(rb_iseq_struct),
3159            "::",
3160            stringify!(local_size)
3161        )
3162    );
3163    assert_eq!(
3164        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).ic_entries as *const _ as usize },
3165        120usize,
3166        concat!(
3167            "Offset of field: ",
3168            stringify!(rb_iseq_struct),
3169            "::",
3170            stringify!(ic_entries)
3171        )
3172    );
3173    assert_eq!(
3174        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).ic_size as *const _ as usize },
3175        128usize,
3176        concat!(
3177            "Offset of field: ",
3178            stringify!(rb_iseq_struct),
3179            "::",
3180            stringify!(ic_size)
3181        )
3182    );
3183    assert_eq!(
3184        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).callinfo_entries as *const _ as usize },
3185        136usize,
3186        concat!(
3187            "Offset of field: ",
3188            stringify!(rb_iseq_struct),
3189            "::",
3190            stringify!(callinfo_entries)
3191        )
3192    );
3193    assert_eq!(
3194        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).callinfo_size as *const _ as usize },
3195        144usize,
3196        concat!(
3197            "Offset of field: ",
3198            stringify!(rb_iseq_struct),
3199            "::",
3200            stringify!(callinfo_size)
3201        )
3202    );
3203    assert_eq!(
3204        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).argc as *const _ as usize },
3205        148usize,
3206        concat!(
3207            "Offset of field: ",
3208            stringify!(rb_iseq_struct),
3209            "::",
3210            stringify!(argc)
3211        )
3212    );
3213    assert_eq!(
3214        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_simple as *const _ as usize },
3215        152usize,
3216        concat!(
3217            "Offset of field: ",
3218            stringify!(rb_iseq_struct),
3219            "::",
3220            stringify!(arg_simple)
3221        )
3222    );
3223    assert_eq!(
3224        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_rest as *const _ as usize },
3225        156usize,
3226        concat!(
3227            "Offset of field: ",
3228            stringify!(rb_iseq_struct),
3229            "::",
3230            stringify!(arg_rest)
3231        )
3232    );
3233    assert_eq!(
3234        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_block as *const _ as usize },
3235        160usize,
3236        concat!(
3237            "Offset of field: ",
3238            stringify!(rb_iseq_struct),
3239            "::",
3240            stringify!(arg_block)
3241        )
3242    );
3243    assert_eq!(
3244        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_opts as *const _ as usize },
3245        164usize,
3246        concat!(
3247            "Offset of field: ",
3248            stringify!(rb_iseq_struct),
3249            "::",
3250            stringify!(arg_opts)
3251        )
3252    );
3253    assert_eq!(
3254        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_post_len as *const _ as usize },
3255        168usize,
3256        concat!(
3257            "Offset of field: ",
3258            stringify!(rb_iseq_struct),
3259            "::",
3260            stringify!(arg_post_len)
3261        )
3262    );
3263    assert_eq!(
3264        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_post_start as *const _ as usize },
3265        172usize,
3266        concat!(
3267            "Offset of field: ",
3268            stringify!(rb_iseq_struct),
3269            "::",
3270            stringify!(arg_post_start)
3271        )
3272    );
3273    assert_eq!(
3274        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_size as *const _ as usize },
3275        176usize,
3276        concat!(
3277            "Offset of field: ",
3278            stringify!(rb_iseq_struct),
3279            "::",
3280            stringify!(arg_size)
3281        )
3282    );
3283    assert_eq!(
3284        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_opt_table as *const _ as usize },
3285        184usize,
3286        concat!(
3287            "Offset of field: ",
3288            stringify!(rb_iseq_struct),
3289            "::",
3290            stringify!(arg_opt_table)
3291        )
3292    );
3293    assert_eq!(
3294        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_keyword as *const _ as usize },
3295        192usize,
3296        concat!(
3297            "Offset of field: ",
3298            stringify!(rb_iseq_struct),
3299            "::",
3300            stringify!(arg_keyword)
3301        )
3302    );
3303    assert_eq!(
3304        unsafe {
3305            &(*(::std::ptr::null::<rb_iseq_struct>())).arg_keyword_check as *const _ as usize
3306        },
3307        196usize,
3308        concat!(
3309            "Offset of field: ",
3310            stringify!(rb_iseq_struct),
3311            "::",
3312            stringify!(arg_keyword_check)
3313        )
3314    );
3315    assert_eq!(
3316        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_keywords as *const _ as usize },
3317        200usize,
3318        concat!(
3319            "Offset of field: ",
3320            stringify!(rb_iseq_struct),
3321            "::",
3322            stringify!(arg_keywords)
3323        )
3324    );
3325    assert_eq!(
3326        unsafe {
3327            &(*(::std::ptr::null::<rb_iseq_struct>())).arg_keyword_table as *const _ as usize
3328        },
3329        208usize,
3330        concat!(
3331            "Offset of field: ",
3332            stringify!(rb_iseq_struct),
3333            "::",
3334            stringify!(arg_keyword_table)
3335        )
3336    );
3337    assert_eq!(
3338        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).stack_max as *const _ as usize },
3339        216usize,
3340        concat!(
3341            "Offset of field: ",
3342            stringify!(rb_iseq_struct),
3343            "::",
3344            stringify!(stack_max)
3345        )
3346    );
3347    assert_eq!(
3348        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).catch_table as *const _ as usize },
3349        224usize,
3350        concat!(
3351            "Offset of field: ",
3352            stringify!(rb_iseq_struct),
3353            "::",
3354            stringify!(catch_table)
3355        )
3356    );
3357    assert_eq!(
3358        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).catch_table_size as *const _ as usize },
3359        232usize,
3360        concat!(
3361            "Offset of field: ",
3362            stringify!(rb_iseq_struct),
3363            "::",
3364            stringify!(catch_table_size)
3365        )
3366    );
3367    assert_eq!(
3368        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).parent_iseq as *const _ as usize },
3369        240usize,
3370        concat!(
3371            "Offset of field: ",
3372            stringify!(rb_iseq_struct),
3373            "::",
3374            stringify!(parent_iseq)
3375        )
3376    );
3377    assert_eq!(
3378        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_iseq as *const _ as usize },
3379        248usize,
3380        concat!(
3381            "Offset of field: ",
3382            stringify!(rb_iseq_struct),
3383            "::",
3384            stringify!(local_iseq)
3385        )
3386    );
3387    assert_eq!(
3388        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).self_ as *const _ as usize },
3389        256usize,
3390        concat!(
3391            "Offset of field: ",
3392            stringify!(rb_iseq_struct),
3393            "::",
3394            stringify!(self_)
3395        )
3396    );
3397    assert_eq!(
3398        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).orig as *const _ as usize },
3399        264usize,
3400        concat!(
3401            "Offset of field: ",
3402            stringify!(rb_iseq_struct),
3403            "::",
3404            stringify!(orig)
3405        )
3406    );
3407    assert_eq!(
3408        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).cref_stack as *const _ as usize },
3409        272usize,
3410        concat!(
3411            "Offset of field: ",
3412            stringify!(rb_iseq_struct),
3413            "::",
3414            stringify!(cref_stack)
3415        )
3416    );
3417    assert_eq!(
3418        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).klass as *const _ as usize },
3419        280usize,
3420        concat!(
3421            "Offset of field: ",
3422            stringify!(rb_iseq_struct),
3423            "::",
3424            stringify!(klass)
3425        )
3426    );
3427    assert_eq!(
3428        unsafe {
3429            &(*(::std::ptr::null::<rb_iseq_struct>())).defined_method_id as *const _ as usize
3430        },
3431        288usize,
3432        concat!(
3433            "Offset of field: ",
3434            stringify!(rb_iseq_struct),
3435            "::",
3436            stringify!(defined_method_id)
3437        )
3438    );
3439    assert_eq!(
3440        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).flip_cnt as *const _ as usize },
3441        296usize,
3442        concat!(
3443            "Offset of field: ",
3444            stringify!(rb_iseq_struct),
3445            "::",
3446            stringify!(flip_cnt)
3447        )
3448    );
3449    assert_eq!(
3450        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).compile_data as *const _ as usize },
3451        304usize,
3452        concat!(
3453            "Offset of field: ",
3454            stringify!(rb_iseq_struct),
3455            "::",
3456            stringify!(compile_data)
3457        )
3458    );
3459}
3460#[repr(C)]
3461#[derive(Debug, Copy, Clone)]
3462pub struct rb_objspace {
3463    _unused: [u8; 0],
3464}
3465#[repr(C)]
3466#[derive(Debug, Copy, Clone)]
3467pub struct rb_hook_list_struct {
3468    pub hooks: *mut rb_event_hook_struct,
3469    pub events: rb_event_flag_t,
3470    pub need_clean: ::std::os::raw::c_int,
3471}
3472#[test]
3473fn bindgen_test_layout_rb_hook_list_struct() {
3474    assert_eq!(
3475        ::std::mem::size_of::<rb_hook_list_struct>(),
3476        24usize,
3477        concat!("Size of: ", stringify!(rb_hook_list_struct))
3478    );
3479    assert_eq!(
3480        ::std::mem::align_of::<rb_hook_list_struct>(),
3481        8usize,
3482        concat!("Alignment of ", stringify!(rb_hook_list_struct))
3483    );
3484    assert_eq!(
3485        unsafe { &(*(::std::ptr::null::<rb_hook_list_struct>())).hooks as *const _ as usize },
3486        0usize,
3487        concat!(
3488            "Offset of field: ",
3489            stringify!(rb_hook_list_struct),
3490            "::",
3491            stringify!(hooks)
3492        )
3493    );
3494    assert_eq!(
3495        unsafe { &(*(::std::ptr::null::<rb_hook_list_struct>())).events as *const _ as usize },
3496        8usize,
3497        concat!(
3498            "Offset of field: ",
3499            stringify!(rb_hook_list_struct),
3500            "::",
3501            stringify!(events)
3502        )
3503    );
3504    assert_eq!(
3505        unsafe { &(*(::std::ptr::null::<rb_hook_list_struct>())).need_clean as *const _ as usize },
3506        16usize,
3507        concat!(
3508            "Offset of field: ",
3509            stringify!(rb_hook_list_struct),
3510            "::",
3511            stringify!(need_clean)
3512        )
3513    );
3514}
3515pub type rb_hook_list_t = rb_hook_list_struct;
3516#[repr(C)]
3517#[derive(Copy, Clone)]
3518pub struct rb_vm_struct {
3519    pub self_: VALUE,
3520    pub gvl: rb_global_vm_lock_t,
3521    pub thread_destruct_lock: rb_thread_lock_t,
3522    pub main_thread: *mut rb_thread_struct,
3523    pub running_thread: *mut rb_thread_struct,
3524    pub living_threads: *mut st_table,
3525    pub thgroup_default: VALUE,
3526    pub running: ::std::os::raw::c_int,
3527    pub thread_abort_on_exception: ::std::os::raw::c_int,
3528    pub trace_running: ::std::os::raw::c_int,
3529    pub sleeper: ::std::os::raw::c_int,
3530    pub mark_object_ary: VALUE,
3531    pub special_exceptions: [VALUE; 4usize],
3532    pub top_self: VALUE,
3533    pub load_path: VALUE,
3534    pub load_path_snapshot: VALUE,
3535    pub load_path_check_cache: VALUE,
3536    pub expanded_load_path: VALUE,
3537    pub loaded_features: VALUE,
3538    pub loaded_features_snapshot: VALUE,
3539    pub loaded_features_index: VALUE,
3540    pub loading_table: *mut st_table,
3541    pub trap_list: [rb_vm_struct__bindgen_ty_1; 65usize],
3542    pub event_hooks: rb_hook_list_t,
3543    pub src_encoding_index: ::std::os::raw::c_int,
3544    pub verbose: VALUE,
3545    pub debug: VALUE,
3546    pub progname: VALUE,
3547    pub coverages: VALUE,
3548    pub unlinked_method_entry_list: *mut unlinked_method_entry_list_entry,
3549    pub objspace: *mut rb_objspace,
3550    pub at_exit: RArray,
3551    pub defined_strings: *mut VALUE,
3552    pub default_params: rb_vm_struct__bindgen_ty_2,
3553}
3554#[repr(C)]
3555#[derive(Debug, Copy, Clone)]
3556pub struct rb_vm_struct__bindgen_ty_1 {
3557    pub cmd: VALUE,
3558    pub safe: ::std::os::raw::c_int,
3559}
3560#[test]
3561fn bindgen_test_layout_rb_vm_struct__bindgen_ty_1() {
3562    assert_eq!(
3563        ::std::mem::size_of::<rb_vm_struct__bindgen_ty_1>(),
3564        16usize,
3565        concat!("Size of: ", stringify!(rb_vm_struct__bindgen_ty_1))
3566    );
3567    assert_eq!(
3568        ::std::mem::align_of::<rb_vm_struct__bindgen_ty_1>(),
3569        8usize,
3570        concat!("Alignment of ", stringify!(rb_vm_struct__bindgen_ty_1))
3571    );
3572    assert_eq!(
3573        unsafe { &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_1>())).cmd as *const _ as usize },
3574        0usize,
3575        concat!(
3576            "Offset of field: ",
3577            stringify!(rb_vm_struct__bindgen_ty_1),
3578            "::",
3579            stringify!(cmd)
3580        )
3581    );
3582    assert_eq!(
3583        unsafe { &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_1>())).safe as *const _ as usize },
3584        8usize,
3585        concat!(
3586            "Offset of field: ",
3587            stringify!(rb_vm_struct__bindgen_ty_1),
3588            "::",
3589            stringify!(safe)
3590        )
3591    );
3592}
3593#[repr(C)]
3594#[derive(Debug, Copy, Clone)]
3595pub struct rb_vm_struct__bindgen_ty_2 {
3596    pub thread_vm_stack_size: usize,
3597    pub thread_machine_stack_size: usize,
3598    pub fiber_vm_stack_size: usize,
3599    pub fiber_machine_stack_size: usize,
3600}
3601#[test]
3602fn bindgen_test_layout_rb_vm_struct__bindgen_ty_2() {
3603    assert_eq!(
3604        ::std::mem::size_of::<rb_vm_struct__bindgen_ty_2>(),
3605        32usize,
3606        concat!("Size of: ", stringify!(rb_vm_struct__bindgen_ty_2))
3607    );
3608    assert_eq!(
3609        ::std::mem::align_of::<rb_vm_struct__bindgen_ty_2>(),
3610        8usize,
3611        concat!("Alignment of ", stringify!(rb_vm_struct__bindgen_ty_2))
3612    );
3613    assert_eq!(
3614        unsafe {
3615            &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_2>())).thread_vm_stack_size as *const _
3616                as usize
3617        },
3618        0usize,
3619        concat!(
3620            "Offset of field: ",
3621            stringify!(rb_vm_struct__bindgen_ty_2),
3622            "::",
3623            stringify!(thread_vm_stack_size)
3624        )
3625    );
3626    assert_eq!(
3627        unsafe {
3628            &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_2>())).thread_machine_stack_size
3629                as *const _ as usize
3630        },
3631        8usize,
3632        concat!(
3633            "Offset of field: ",
3634            stringify!(rb_vm_struct__bindgen_ty_2),
3635            "::",
3636            stringify!(thread_machine_stack_size)
3637        )
3638    );
3639    assert_eq!(
3640        unsafe {
3641            &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_2>())).fiber_vm_stack_size as *const _
3642                as usize
3643        },
3644        16usize,
3645        concat!(
3646            "Offset of field: ",
3647            stringify!(rb_vm_struct__bindgen_ty_2),
3648            "::",
3649            stringify!(fiber_vm_stack_size)
3650        )
3651    );
3652    assert_eq!(
3653        unsafe {
3654            &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_2>())).fiber_machine_stack_size
3655                as *const _ as usize
3656        },
3657        24usize,
3658        concat!(
3659            "Offset of field: ",
3660            stringify!(rb_vm_struct__bindgen_ty_2),
3661            "::",
3662            stringify!(fiber_machine_stack_size)
3663        )
3664    );
3665}
3666#[test]
3667fn bindgen_test_layout_rb_vm_struct() {
3668    assert_eq!(
3669        ::std::mem::size_of::<rb_vm_struct>(),
3670        1640usize,
3671        concat!("Size of: ", stringify!(rb_vm_struct))
3672    );
3673    assert_eq!(
3674        ::std::mem::align_of::<rb_vm_struct>(),
3675        8usize,
3676        concat!("Alignment of ", stringify!(rb_vm_struct))
3677    );
3678    assert_eq!(
3679        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).self_ as *const _ as usize },
3680        0usize,
3681        concat!(
3682            "Offset of field: ",
3683            stringify!(rb_vm_struct),
3684            "::",
3685            stringify!(self_)
3686        )
3687    );
3688    assert_eq!(
3689        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).gvl as *const _ as usize },
3690        8usize,
3691        concat!(
3692            "Offset of field: ",
3693            stringify!(rb_vm_struct),
3694            "::",
3695            stringify!(gvl)
3696        )
3697    );
3698    assert_eq!(
3699        unsafe {
3700            &(*(::std::ptr::null::<rb_vm_struct>())).thread_destruct_lock as *const _ as usize
3701        },
3702        240usize,
3703        concat!(
3704            "Offset of field: ",
3705            stringify!(rb_vm_struct),
3706            "::",
3707            stringify!(thread_destruct_lock)
3708        )
3709    );
3710    assert_eq!(
3711        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).main_thread as *const _ as usize },
3712        280usize,
3713        concat!(
3714            "Offset of field: ",
3715            stringify!(rb_vm_struct),
3716            "::",
3717            stringify!(main_thread)
3718        )
3719    );
3720    assert_eq!(
3721        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).running_thread as *const _ as usize },
3722        288usize,
3723        concat!(
3724            "Offset of field: ",
3725            stringify!(rb_vm_struct),
3726            "::",
3727            stringify!(running_thread)
3728        )
3729    );
3730    assert_eq!(
3731        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).living_threads as *const _ as usize },
3732        296usize,
3733        concat!(
3734            "Offset of field: ",
3735            stringify!(rb_vm_struct),
3736            "::",
3737            stringify!(living_threads)
3738        )
3739    );
3740    assert_eq!(
3741        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).thgroup_default as *const _ as usize },
3742        304usize,
3743        concat!(
3744            "Offset of field: ",
3745            stringify!(rb_vm_struct),
3746            "::",
3747            stringify!(thgroup_default)
3748        )
3749    );
3750    assert_eq!(
3751        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).running as *const _ as usize },
3752        312usize,
3753        concat!(
3754            "Offset of field: ",
3755            stringify!(rb_vm_struct),
3756            "::",
3757            stringify!(running)
3758        )
3759    );
3760    assert_eq!(
3761        unsafe {
3762            &(*(::std::ptr::null::<rb_vm_struct>())).thread_abort_on_exception as *const _ as usize
3763        },
3764        316usize,
3765        concat!(
3766            "Offset of field: ",
3767            stringify!(rb_vm_struct),
3768            "::",
3769            stringify!(thread_abort_on_exception)
3770        )
3771    );
3772    assert_eq!(
3773        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).trace_running as *const _ as usize },
3774        320usize,
3775        concat!(
3776            "Offset of field: ",
3777            stringify!(rb_vm_struct),
3778            "::",
3779            stringify!(trace_running)
3780        )
3781    );
3782    assert_eq!(
3783        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).sleeper as *const _ as usize },
3784        324usize,
3785        concat!(
3786            "Offset of field: ",
3787            stringify!(rb_vm_struct),
3788            "::",
3789            stringify!(sleeper)
3790        )
3791    );
3792    assert_eq!(
3793        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).mark_object_ary as *const _ as usize },
3794        328usize,
3795        concat!(
3796            "Offset of field: ",
3797            stringify!(rb_vm_struct),
3798            "::",
3799            stringify!(mark_object_ary)
3800        )
3801    );
3802    assert_eq!(
3803        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).special_exceptions as *const _ as usize },
3804        336usize,
3805        concat!(
3806            "Offset of field: ",
3807            stringify!(rb_vm_struct),
3808            "::",
3809            stringify!(special_exceptions)
3810        )
3811    );
3812    assert_eq!(
3813        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).top_self as *const _ as usize },
3814        368usize,
3815        concat!(
3816            "Offset of field: ",
3817            stringify!(rb_vm_struct),
3818            "::",
3819            stringify!(top_self)
3820        )
3821    );
3822    assert_eq!(
3823        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).load_path as *const _ as usize },
3824        376usize,
3825        concat!(
3826            "Offset of field: ",
3827            stringify!(rb_vm_struct),
3828            "::",
3829            stringify!(load_path)
3830        )
3831    );
3832    assert_eq!(
3833        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).load_path_snapshot as *const _ as usize },
3834        384usize,
3835        concat!(
3836            "Offset of field: ",
3837            stringify!(rb_vm_struct),
3838            "::",
3839            stringify!(load_path_snapshot)
3840        )
3841    );
3842    assert_eq!(
3843        unsafe {
3844            &(*(::std::ptr::null::<rb_vm_struct>())).load_path_check_cache as *const _ as usize
3845        },
3846        392usize,
3847        concat!(
3848            "Offset of field: ",
3849            stringify!(rb_vm_struct),
3850            "::",
3851            stringify!(load_path_check_cache)
3852        )
3853    );
3854    assert_eq!(
3855        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).expanded_load_path as *const _ as usize },
3856        400usize,
3857        concat!(
3858            "Offset of field: ",
3859            stringify!(rb_vm_struct),
3860            "::",
3861            stringify!(expanded_load_path)
3862        )
3863    );
3864    assert_eq!(
3865        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).loaded_features as *const _ as usize },
3866        408usize,
3867        concat!(
3868            "Offset of field: ",
3869            stringify!(rb_vm_struct),
3870            "::",
3871            stringify!(loaded_features)
3872        )
3873    );
3874    assert_eq!(
3875        unsafe {
3876            &(*(::std::ptr::null::<rb_vm_struct>())).loaded_features_snapshot as *const _ as usize
3877        },
3878        416usize,
3879        concat!(
3880            "Offset of field: ",
3881            stringify!(rb_vm_struct),
3882            "::",
3883            stringify!(loaded_features_snapshot)
3884        )
3885    );
3886    assert_eq!(
3887        unsafe {
3888            &(*(::std::ptr::null::<rb_vm_struct>())).loaded_features_index as *const _ as usize
3889        },
3890        424usize,
3891        concat!(
3892            "Offset of field: ",
3893            stringify!(rb_vm_struct),
3894            "::",
3895            stringify!(loaded_features_index)
3896        )
3897    );
3898    assert_eq!(
3899        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).loading_table as *const _ as usize },
3900        432usize,
3901        concat!(
3902            "Offset of field: ",
3903            stringify!(rb_vm_struct),
3904            "::",
3905            stringify!(loading_table)
3906        )
3907    );
3908    assert_eq!(
3909        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).trap_list as *const _ as usize },
3910        440usize,
3911        concat!(
3912            "Offset of field: ",
3913            stringify!(rb_vm_struct),
3914            "::",
3915            stringify!(trap_list)
3916        )
3917    );
3918    assert_eq!(
3919        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).event_hooks as *const _ as usize },
3920        1480usize,
3921        concat!(
3922            "Offset of field: ",
3923            stringify!(rb_vm_struct),
3924            "::",
3925            stringify!(event_hooks)
3926        )
3927    );
3928    assert_eq!(
3929        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).src_encoding_index as *const _ as usize },
3930        1504usize,
3931        concat!(
3932            "Offset of field: ",
3933            stringify!(rb_vm_struct),
3934            "::",
3935            stringify!(src_encoding_index)
3936        )
3937    );
3938    assert_eq!(
3939        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).verbose as *const _ as usize },
3940        1512usize,
3941        concat!(
3942            "Offset of field: ",
3943            stringify!(rb_vm_struct),
3944            "::",
3945            stringify!(verbose)
3946        )
3947    );
3948    assert_eq!(
3949        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).debug as *const _ as usize },
3950        1520usize,
3951        concat!(
3952            "Offset of field: ",
3953            stringify!(rb_vm_struct),
3954            "::",
3955            stringify!(debug)
3956        )
3957    );
3958    assert_eq!(
3959        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).progname as *const _ as usize },
3960        1528usize,
3961        concat!(
3962            "Offset of field: ",
3963            stringify!(rb_vm_struct),
3964            "::",
3965            stringify!(progname)
3966        )
3967    );
3968    assert_eq!(
3969        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).coverages as *const _ as usize },
3970        1536usize,
3971        concat!(
3972            "Offset of field: ",
3973            stringify!(rb_vm_struct),
3974            "::",
3975            stringify!(coverages)
3976        )
3977    );
3978    assert_eq!(
3979        unsafe {
3980            &(*(::std::ptr::null::<rb_vm_struct>())).unlinked_method_entry_list as *const _ as usize
3981        },
3982        1544usize,
3983        concat!(
3984            "Offset of field: ",
3985            stringify!(rb_vm_struct),
3986            "::",
3987            stringify!(unlinked_method_entry_list)
3988        )
3989    );
3990    assert_eq!(
3991        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).objspace as *const _ as usize },
3992        1552usize,
3993        concat!(
3994            "Offset of field: ",
3995            stringify!(rb_vm_struct),
3996            "::",
3997            stringify!(objspace)
3998        )
3999    );
4000    assert_eq!(
4001        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).at_exit as *const _ as usize },
4002        1560usize,
4003        concat!(
4004            "Offset of field: ",
4005            stringify!(rb_vm_struct),
4006            "::",
4007            stringify!(at_exit)
4008        )
4009    );
4010    assert_eq!(
4011        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).defined_strings as *const _ as usize },
4012        1600usize,
4013        concat!(
4014            "Offset of field: ",
4015            stringify!(rb_vm_struct),
4016            "::",
4017            stringify!(defined_strings)
4018        )
4019    );
4020    assert_eq!(
4021        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).default_params as *const _ as usize },
4022        1608usize,
4023        concat!(
4024            "Offset of field: ",
4025            stringify!(rb_vm_struct),
4026            "::",
4027            stringify!(default_params)
4028        )
4029    );
4030}
4031impl ::std::fmt::Debug for rb_vm_struct {
4032    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4033        write ! ( f , "rb_vm_struct {{ self: {:?}, gvl: {:?}, thread_destruct_lock: {:?}, main_thread: {:?}, running_thread: {:?}, living_threads: {:?}, thgroup_default: {:?}, running: {:?}, thread_abort_on_exception: {:?}, trace_running: {:?}, sleeper: {:?}, mark_object_ary: {:?}, special_exceptions: {:?}, top_self: {:?}, load_path: {:?}, load_path_snapshot: {:?}, load_path_check_cache: {:?}, expanded_load_path: {:?}, loaded_features: {:?}, loaded_features_snapshot: {:?}, loaded_features_index: {:?}, loading_table: {:?}, trap_list: [{}], event_hooks: {:?}, src_encoding_index: {:?}, verbose: {:?}, debug: {:?}, progname: {:?}, coverages: {:?}, unlinked_method_entry_list: {:?}, objspace: {:?}, at_exit: {:?}, defined_strings: {:?}, default_params: {:?} }}" , self . self_ , self . gvl , self . thread_destruct_lock , self . main_thread , self . running_thread , self . living_threads , self . thgroup_default , self . running , self . thread_abort_on_exception , self . trace_running , self . sleeper , self . mark_object_ary , self . special_exceptions , self . top_self , self . load_path , self . load_path_snapshot , self . load_path_check_cache , self . expanded_load_path , self . loaded_features , self . loaded_features_snapshot , self . loaded_features_index , self . loading_table , self . trap_list . iter ( ) . enumerate ( ) . map ( | ( i , v ) | format ! ( "{}{:?}" , if i > 0 { ", " } else { "" } , v ) ) . collect :: < String > ( ) , self . event_hooks , self . src_encoding_index , self . verbose , self . debug , self . progname , self . coverages , self . unlinked_method_entry_list , self . objspace , self . at_exit , self . defined_strings , self . default_params )
4034    }
4035}
4036pub type rb_vm_t = rb_vm_struct;
4037#[repr(C)]
4038#[derive(Debug, Copy, Clone)]
4039pub struct rb_control_frame_struct {
4040    pub pc: *mut VALUE,
4041    pub sp: *mut VALUE,
4042    pub iseq: *mut rb_iseq_t,
4043    pub flag: VALUE,
4044    pub self_: VALUE,
4045    pub klass: VALUE,
4046    pub ep: *mut VALUE,
4047    pub block_iseq: *mut rb_iseq_t,
4048    pub proc_: VALUE,
4049    pub me: *const rb_method_entry_t,
4050}
4051#[test]
4052fn bindgen_test_layout_rb_control_frame_struct() {
4053    assert_eq!(
4054        ::std::mem::size_of::<rb_control_frame_struct>(),
4055        80usize,
4056        concat!("Size of: ", stringify!(rb_control_frame_struct))
4057    );
4058    assert_eq!(
4059        ::std::mem::align_of::<rb_control_frame_struct>(),
4060        8usize,
4061        concat!("Alignment of ", stringify!(rb_control_frame_struct))
4062    );
4063    assert_eq!(
4064        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).pc as *const _ as usize },
4065        0usize,
4066        concat!(
4067            "Offset of field: ",
4068            stringify!(rb_control_frame_struct),
4069            "::",
4070            stringify!(pc)
4071        )
4072    );
4073    assert_eq!(
4074        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).sp as *const _ as usize },
4075        8usize,
4076        concat!(
4077            "Offset of field: ",
4078            stringify!(rb_control_frame_struct),
4079            "::",
4080            stringify!(sp)
4081        )
4082    );
4083    assert_eq!(
4084        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).iseq as *const _ as usize },
4085        16usize,
4086        concat!(
4087            "Offset of field: ",
4088            stringify!(rb_control_frame_struct),
4089            "::",
4090            stringify!(iseq)
4091        )
4092    );
4093    assert_eq!(
4094        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).flag as *const _ as usize },
4095        24usize,
4096        concat!(
4097            "Offset of field: ",
4098            stringify!(rb_control_frame_struct),
4099            "::",
4100            stringify!(flag)
4101        )
4102    );
4103    assert_eq!(
4104        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).self_ as *const _ as usize },
4105        32usize,
4106        concat!(
4107            "Offset of field: ",
4108            stringify!(rb_control_frame_struct),
4109            "::",
4110            stringify!(self_)
4111        )
4112    );
4113    assert_eq!(
4114        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).klass as *const _ as usize },
4115        40usize,
4116        concat!(
4117            "Offset of field: ",
4118            stringify!(rb_control_frame_struct),
4119            "::",
4120            stringify!(klass)
4121        )
4122    );
4123    assert_eq!(
4124        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).ep as *const _ as usize },
4125        48usize,
4126        concat!(
4127            "Offset of field: ",
4128            stringify!(rb_control_frame_struct),
4129            "::",
4130            stringify!(ep)
4131        )
4132    );
4133    assert_eq!(
4134        unsafe {
4135            &(*(::std::ptr::null::<rb_control_frame_struct>())).block_iseq as *const _ as usize
4136        },
4137        56usize,
4138        concat!(
4139            "Offset of field: ",
4140            stringify!(rb_control_frame_struct),
4141            "::",
4142            stringify!(block_iseq)
4143        )
4144    );
4145    assert_eq!(
4146        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).proc_ as *const _ as usize },
4147        64usize,
4148        concat!(
4149            "Offset of field: ",
4150            stringify!(rb_control_frame_struct),
4151            "::",
4152            stringify!(proc_)
4153        )
4154    );
4155    assert_eq!(
4156        unsafe { &(*(::std::ptr::null::<rb_control_frame_struct>())).me as *const _ as usize },
4157        72usize,
4158        concat!(
4159            "Offset of field: ",
4160            stringify!(rb_control_frame_struct),
4161            "::",
4162            stringify!(me)
4163        )
4164    );
4165}
4166pub type rb_control_frame_t = rb_control_frame_struct;
4167#[repr(C)]
4168#[derive(Debug, Copy, Clone)]
4169pub struct rb_block_struct {
4170    pub self_: VALUE,
4171    pub klass: VALUE,
4172    pub ep: *mut VALUE,
4173    pub iseq: *mut rb_iseq_t,
4174    pub proc_: VALUE,
4175}
4176#[test]
4177fn bindgen_test_layout_rb_block_struct() {
4178    assert_eq!(
4179        ::std::mem::size_of::<rb_block_struct>(),
4180        40usize,
4181        concat!("Size of: ", stringify!(rb_block_struct))
4182    );
4183    assert_eq!(
4184        ::std::mem::align_of::<rb_block_struct>(),
4185        8usize,
4186        concat!("Alignment of ", stringify!(rb_block_struct))
4187    );
4188    assert_eq!(
4189        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).self_ as *const _ as usize },
4190        0usize,
4191        concat!(
4192            "Offset of field: ",
4193            stringify!(rb_block_struct),
4194            "::",
4195            stringify!(self_)
4196        )
4197    );
4198    assert_eq!(
4199        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).klass as *const _ as usize },
4200        8usize,
4201        concat!(
4202            "Offset of field: ",
4203            stringify!(rb_block_struct),
4204            "::",
4205            stringify!(klass)
4206        )
4207    );
4208    assert_eq!(
4209        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).ep as *const _ as usize },
4210        16usize,
4211        concat!(
4212            "Offset of field: ",
4213            stringify!(rb_block_struct),
4214            "::",
4215            stringify!(ep)
4216        )
4217    );
4218    assert_eq!(
4219        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).iseq as *const _ as usize },
4220        24usize,
4221        concat!(
4222            "Offset of field: ",
4223            stringify!(rb_block_struct),
4224            "::",
4225            stringify!(iseq)
4226        )
4227    );
4228    assert_eq!(
4229        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).proc_ as *const _ as usize },
4230        32usize,
4231        concat!(
4232            "Offset of field: ",
4233            stringify!(rb_block_struct),
4234            "::",
4235            stringify!(proc_)
4236        )
4237    );
4238}
4239pub type rb_block_t = rb_block_struct;
4240pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 0;
4241pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 1;
4242pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 2;
4243pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 3;
4244pub type rb_thread_status = ::std::os::raw::c_uint;
4245pub type rb_jmpbuf_t = jmp_buf;
4246#[repr(C)]
4247#[derive(Debug, Copy, Clone)]
4248pub struct rb_vm_tag {
4249    pub buf: rb_jmpbuf_t,
4250    pub tag: VALUE,
4251    pub retval: VALUE,
4252    pub prev: *mut rb_vm_tag,
4253}
4254#[test]
4255fn bindgen_test_layout_rb_vm_tag() {
4256    assert_eq!(
4257        ::std::mem::size_of::<rb_vm_tag>(),
4258        224usize,
4259        concat!("Size of: ", stringify!(rb_vm_tag))
4260    );
4261    assert_eq!(
4262        ::std::mem::align_of::<rb_vm_tag>(),
4263        8usize,
4264        concat!("Alignment of ", stringify!(rb_vm_tag))
4265    );
4266    assert_eq!(
4267        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).buf as *const _ as usize },
4268        0usize,
4269        concat!(
4270            "Offset of field: ",
4271            stringify!(rb_vm_tag),
4272            "::",
4273            stringify!(buf)
4274        )
4275    );
4276    assert_eq!(
4277        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).tag as *const _ as usize },
4278        200usize,
4279        concat!(
4280            "Offset of field: ",
4281            stringify!(rb_vm_tag),
4282            "::",
4283            stringify!(tag)
4284        )
4285    );
4286    assert_eq!(
4287        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).retval as *const _ as usize },
4288        208usize,
4289        concat!(
4290            "Offset of field: ",
4291            stringify!(rb_vm_tag),
4292            "::",
4293            stringify!(retval)
4294        )
4295    );
4296    assert_eq!(
4297        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).prev as *const _ as usize },
4298        216usize,
4299        concat!(
4300            "Offset of field: ",
4301            stringify!(rb_vm_tag),
4302            "::",
4303            stringify!(prev)
4304        )
4305    );
4306}
4307#[repr(C)]
4308#[derive(Debug, Copy, Clone)]
4309pub struct rb_vm_protect_tag {
4310    pub prev: *mut rb_vm_protect_tag,
4311}
4312#[test]
4313fn bindgen_test_layout_rb_vm_protect_tag() {
4314    assert_eq!(
4315        ::std::mem::size_of::<rb_vm_protect_tag>(),
4316        8usize,
4317        concat!("Size of: ", stringify!(rb_vm_protect_tag))
4318    );
4319    assert_eq!(
4320        ::std::mem::align_of::<rb_vm_protect_tag>(),
4321        8usize,
4322        concat!("Alignment of ", stringify!(rb_vm_protect_tag))
4323    );
4324    assert_eq!(
4325        unsafe { &(*(::std::ptr::null::<rb_vm_protect_tag>())).prev as *const _ as usize },
4326        0usize,
4327        concat!(
4328            "Offset of field: ",
4329            stringify!(rb_vm_protect_tag),
4330            "::",
4331            stringify!(prev)
4332        )
4333    );
4334}
4335#[repr(C)]
4336#[derive(Debug, Copy, Clone)]
4337pub struct rb_unblock_callback {
4338    pub func: rb_unblock_function_t,
4339    pub arg: *mut ::std::os::raw::c_void,
4340}
4341#[test]
4342fn bindgen_test_layout_rb_unblock_callback() {
4343    assert_eq!(
4344        ::std::mem::size_of::<rb_unblock_callback>(),
4345        16usize,
4346        concat!("Size of: ", stringify!(rb_unblock_callback))
4347    );
4348    assert_eq!(
4349        ::std::mem::align_of::<rb_unblock_callback>(),
4350        8usize,
4351        concat!("Alignment of ", stringify!(rb_unblock_callback))
4352    );
4353    assert_eq!(
4354        unsafe { &(*(::std::ptr::null::<rb_unblock_callback>())).func as *const _ as usize },
4355        0usize,
4356        concat!(
4357            "Offset of field: ",
4358            stringify!(rb_unblock_callback),
4359            "::",
4360            stringify!(func)
4361        )
4362    );
4363    assert_eq!(
4364        unsafe { &(*(::std::ptr::null::<rb_unblock_callback>())).arg as *const _ as usize },
4365        8usize,
4366        concat!(
4367            "Offset of field: ",
4368            stringify!(rb_unblock_callback),
4369            "::",
4370            stringify!(arg)
4371        )
4372    );
4373}
4374#[repr(C)]
4375#[derive(Debug, Copy, Clone)]
4376pub struct rb_mutex_struct {
4377    _unused: [u8; 0],
4378}
4379#[repr(C)]
4380#[derive(Debug, Copy, Clone)]
4381pub struct rb_thread_list_struct {
4382    pub next: *mut rb_thread_list_struct,
4383    pub th: *mut rb_thread_struct,
4384}
4385#[test]
4386fn bindgen_test_layout_rb_thread_list_struct() {
4387    assert_eq!(
4388        ::std::mem::size_of::<rb_thread_list_struct>(),
4389        16usize,
4390        concat!("Size of: ", stringify!(rb_thread_list_struct))
4391    );
4392    assert_eq!(
4393        ::std::mem::align_of::<rb_thread_list_struct>(),
4394        8usize,
4395        concat!("Alignment of ", stringify!(rb_thread_list_struct))
4396    );
4397    assert_eq!(
4398        unsafe { &(*(::std::ptr::null::<rb_thread_list_struct>())).next as *const _ as usize },
4399        0usize,
4400        concat!(
4401            "Offset of field: ",
4402            stringify!(rb_thread_list_struct),
4403            "::",
4404            stringify!(next)
4405        )
4406    );
4407    assert_eq!(
4408        unsafe { &(*(::std::ptr::null::<rb_thread_list_struct>())).th as *const _ as usize },
4409        8usize,
4410        concat!(
4411            "Offset of field: ",
4412            stringify!(rb_thread_list_struct),
4413            "::",
4414            stringify!(th)
4415        )
4416    );
4417}
4418pub type rb_thread_list_t = rb_thread_list_struct;
4419#[repr(C)]
4420#[derive(Copy, Clone)]
4421pub struct rb_thread_struct {
4422    pub self_: VALUE,
4423    pub vm: *mut rb_vm_t,
4424    pub stack: *mut VALUE,
4425    pub stack_size: usize,
4426    pub cfp: *mut rb_control_frame_t,
4427    pub safe_level: ::std::os::raw::c_int,
4428    pub raised_flag: ::std::os::raw::c_int,
4429    pub last_status: VALUE,
4430    pub state: ::std::os::raw::c_int,
4431    pub waiting_fd: ::std::os::raw::c_int,
4432    pub passed_block: *const rb_block_t,
4433    pub passed_me: *const rb_method_entry_t,
4434    pub passed_ci: *mut rb_call_info_t,
4435    pub top_self: VALUE,
4436    pub top_wrapper: VALUE,
4437    pub base_block: *mut rb_block_t,
4438    pub root_lep: *mut VALUE,
4439    pub root_svar: VALUE,
4440    pub thread_id: rb_thread_id_t,
4441    pub status: rb_thread_status,
4442    pub to_kill: ::std::os::raw::c_int,
4443    pub priority: ::std::os::raw::c_int,
4444    pub native_thread_data: native_thread_data_t,
4445    pub blocking_region_buffer: *mut ::std::os::raw::c_void,
4446    pub thgroup: VALUE,
4447    pub value: VALUE,
4448    pub errinfo: VALUE,
4449    pub pending_interrupt_queue: VALUE,
4450    pub pending_interrupt_queue_checked: ::std::os::raw::c_int,
4451    pub pending_interrupt_mask_stack: VALUE,
4452    pub interrupt_flag: rb_atomic_t,
4453    pub interrupt_mask: ::std::os::raw::c_ulong,
4454    pub interrupt_lock: rb_thread_lock_t,
4455    pub unblock: rb_unblock_callback,
4456    pub locking_mutex: VALUE,
4457    pub keeping_mutexes: *mut rb_mutex_struct,
4458    pub tag: *mut rb_vm_tag,
4459    pub protect_tag: *mut rb_vm_protect_tag,
4460    pub parse_in_eval: ::std::os::raw::c_int,
4461    pub mild_compile_error: ::std::os::raw::c_int,
4462    pub local_storage: *mut st_table,
4463    pub join_list: *mut rb_thread_list_t,
4464    pub first_proc: VALUE,
4465    pub first_args: VALUE,
4466    pub first_func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
4467    pub machine_stack_start: *mut VALUE,
4468    pub machine_stack_end: *mut VALUE,
4469    pub machine_stack_maxsize: usize,
4470    pub machine_regs: jmp_buf,
4471    pub mark_stack_len: ::std::os::raw::c_int,
4472    pub stat_insn_usage: VALUE,
4473    pub event_hooks: rb_hook_list_t,
4474    pub trace_arg: *mut rb_trace_arg_struct,
4475    pub fiber: VALUE,
4476    pub root_fiber: VALUE,
4477    pub root_jmpbuf: rb_jmpbuf_t,
4478    pub method_missing_reason: ::std::os::raw::c_int,
4479    pub abort_on_exception: ::std::os::raw::c_int,
4480    pub altstack: *mut ::std::os::raw::c_void,
4481    pub running_time_us: ::std::os::raw::c_ulong,
4482}
4483#[test]
4484fn bindgen_test_layout_rb_thread_struct() {
4485    assert_eq!(
4486        ::std::mem::size_of::<rb_thread_struct>(),
4487        936usize,
4488        concat!("Size of: ", stringify!(rb_thread_struct))
4489    );
4490    assert_eq!(
4491        ::std::mem::align_of::<rb_thread_struct>(),
4492        8usize,
4493        concat!("Alignment of ", stringify!(rb_thread_struct))
4494    );
4495    assert_eq!(
4496        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).self_ as *const _ as usize },
4497        0usize,
4498        concat!(
4499            "Offset of field: ",
4500            stringify!(rb_thread_struct),
4501            "::",
4502            stringify!(self_)
4503        )
4504    );
4505    assert_eq!(
4506        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).vm as *const _ as usize },
4507        8usize,
4508        concat!(
4509            "Offset of field: ",
4510            stringify!(rb_thread_struct),
4511            "::",
4512            stringify!(vm)
4513        )
4514    );
4515    assert_eq!(
4516        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).stack as *const _ as usize },
4517        16usize,
4518        concat!(
4519            "Offset of field: ",
4520            stringify!(rb_thread_struct),
4521            "::",
4522            stringify!(stack)
4523        )
4524    );
4525    assert_eq!(
4526        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).stack_size as *const _ as usize },
4527        24usize,
4528        concat!(
4529            "Offset of field: ",
4530            stringify!(rb_thread_struct),
4531            "::",
4532            stringify!(stack_size)
4533        )
4534    );
4535    assert_eq!(
4536        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).cfp as *const _ as usize },
4537        32usize,
4538        concat!(
4539            "Offset of field: ",
4540            stringify!(rb_thread_struct),
4541            "::",
4542            stringify!(cfp)
4543        )
4544    );
4545    assert_eq!(
4546        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).safe_level as *const _ as usize },
4547        40usize,
4548        concat!(
4549            "Offset of field: ",
4550            stringify!(rb_thread_struct),
4551            "::",
4552            stringify!(safe_level)
4553        )
4554    );
4555    assert_eq!(
4556        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).raised_flag as *const _ as usize },
4557        44usize,
4558        concat!(
4559            "Offset of field: ",
4560            stringify!(rb_thread_struct),
4561            "::",
4562            stringify!(raised_flag)
4563        )
4564    );
4565    assert_eq!(
4566        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).last_status as *const _ as usize },
4567        48usize,
4568        concat!(
4569            "Offset of field: ",
4570            stringify!(rb_thread_struct),
4571            "::",
4572            stringify!(last_status)
4573        )
4574    );
4575    assert_eq!(
4576        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).state as *const _ as usize },
4577        56usize,
4578        concat!(
4579            "Offset of field: ",
4580            stringify!(rb_thread_struct),
4581            "::",
4582            stringify!(state)
4583        )
4584    );
4585    assert_eq!(
4586        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).waiting_fd as *const _ as usize },
4587        60usize,
4588        concat!(
4589            "Offset of field: ",
4590            stringify!(rb_thread_struct),
4591            "::",
4592            stringify!(waiting_fd)
4593        )
4594    );
4595    assert_eq!(
4596        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).passed_block as *const _ as usize },
4597        64usize,
4598        concat!(
4599            "Offset of field: ",
4600            stringify!(rb_thread_struct),
4601            "::",
4602            stringify!(passed_block)
4603        )
4604    );
4605    assert_eq!(
4606        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).passed_me as *const _ as usize },
4607        72usize,
4608        concat!(
4609            "Offset of field: ",
4610            stringify!(rb_thread_struct),
4611            "::",
4612            stringify!(passed_me)
4613        )
4614    );
4615    assert_eq!(
4616        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).passed_ci as *const _ as usize },
4617        80usize,
4618        concat!(
4619            "Offset of field: ",
4620            stringify!(rb_thread_struct),
4621            "::",
4622            stringify!(passed_ci)
4623        )
4624    );
4625    assert_eq!(
4626        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).top_self as *const _ as usize },
4627        88usize,
4628        concat!(
4629            "Offset of field: ",
4630            stringify!(rb_thread_struct),
4631            "::",
4632            stringify!(top_self)
4633        )
4634    );
4635    assert_eq!(
4636        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).top_wrapper as *const _ as usize },
4637        96usize,
4638        concat!(
4639            "Offset of field: ",
4640            stringify!(rb_thread_struct),
4641            "::",
4642            stringify!(top_wrapper)
4643        )
4644    );
4645    assert_eq!(
4646        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).base_block as *const _ as usize },
4647        104usize,
4648        concat!(
4649            "Offset of field: ",
4650            stringify!(rb_thread_struct),
4651            "::",
4652            stringify!(base_block)
4653        )
4654    );
4655    assert_eq!(
4656        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).root_lep as *const _ as usize },
4657        112usize,
4658        concat!(
4659            "Offset of field: ",
4660            stringify!(rb_thread_struct),
4661            "::",
4662            stringify!(root_lep)
4663        )
4664    );
4665    assert_eq!(
4666        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).root_svar as *const _ as usize },
4667        120usize,
4668        concat!(
4669            "Offset of field: ",
4670            stringify!(rb_thread_struct),
4671            "::",
4672            stringify!(root_svar)
4673        )
4674    );
4675    assert_eq!(
4676        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).thread_id as *const _ as usize },
4677        128usize,
4678        concat!(
4679            "Offset of field: ",
4680            stringify!(rb_thread_struct),
4681            "::",
4682            stringify!(thread_id)
4683        )
4684    );
4685    assert_eq!(
4686        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).status as *const _ as usize },
4687        136usize,
4688        concat!(
4689            "Offset of field: ",
4690            stringify!(rb_thread_struct),
4691            "::",
4692            stringify!(status)
4693        )
4694    );
4695    assert_eq!(
4696        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).to_kill as *const _ as usize },
4697        140usize,
4698        concat!(
4699            "Offset of field: ",
4700            stringify!(rb_thread_struct),
4701            "::",
4702            stringify!(to_kill)
4703        )
4704    );
4705    assert_eq!(
4706        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).priority as *const _ as usize },
4707        144usize,
4708        concat!(
4709            "Offset of field: ",
4710            stringify!(rb_thread_struct),
4711            "::",
4712            stringify!(priority)
4713        )
4714    );
4715    assert_eq!(
4716        unsafe {
4717            &(*(::std::ptr::null::<rb_thread_struct>())).native_thread_data as *const _ as usize
4718        },
4719        152usize,
4720        concat!(
4721            "Offset of field: ",
4722            stringify!(rb_thread_struct),
4723            "::",
4724            stringify!(native_thread_data)
4725        )
4726    );
4727    assert_eq!(
4728        unsafe {
4729            &(*(::std::ptr::null::<rb_thread_struct>())).blocking_region_buffer as *const _ as usize
4730        },
4731        216usize,
4732        concat!(
4733            "Offset of field: ",
4734            stringify!(rb_thread_struct),
4735            "::",
4736            stringify!(blocking_region_buffer)
4737        )
4738    );
4739    assert_eq!(
4740        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).thgroup as *const _ as usize },
4741        224usize,
4742        concat!(
4743            "Offset of field: ",
4744            stringify!(rb_thread_struct),
4745            "::",
4746            stringify!(thgroup)
4747        )
4748    );
4749    assert_eq!(
4750        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).value as *const _ as usize },
4751        232usize,
4752        concat!(
4753            "Offset of field: ",
4754            stringify!(rb_thread_struct),
4755            "::",
4756            stringify!(value)
4757        )
4758    );
4759    assert_eq!(
4760        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).errinfo as *const _ as usize },
4761        240usize,
4762        concat!(
4763            "Offset of field: ",
4764            stringify!(rb_thread_struct),
4765            "::",
4766            stringify!(errinfo)
4767        )
4768    );
4769    assert_eq!(
4770        unsafe {
4771            &(*(::std::ptr::null::<rb_thread_struct>())).pending_interrupt_queue as *const _
4772                as usize
4773        },
4774        248usize,
4775        concat!(
4776            "Offset of field: ",
4777            stringify!(rb_thread_struct),
4778            "::",
4779            stringify!(pending_interrupt_queue)
4780        )
4781    );
4782    assert_eq!(
4783        unsafe {
4784            &(*(::std::ptr::null::<rb_thread_struct>())).pending_interrupt_queue_checked as *const _
4785                as usize
4786        },
4787        256usize,
4788        concat!(
4789            "Offset of field: ",
4790            stringify!(rb_thread_struct),
4791            "::",
4792            stringify!(pending_interrupt_queue_checked)
4793        )
4794    );
4795    assert_eq!(
4796        unsafe {
4797            &(*(::std::ptr::null::<rb_thread_struct>())).pending_interrupt_mask_stack as *const _
4798                as usize
4799        },
4800        264usize,
4801        concat!(
4802            "Offset of field: ",
4803            stringify!(rb_thread_struct),
4804            "::",
4805            stringify!(pending_interrupt_mask_stack)
4806        )
4807    );
4808    assert_eq!(
4809        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).interrupt_flag as *const _ as usize },
4810        272usize,
4811        concat!(
4812            "Offset of field: ",
4813            stringify!(rb_thread_struct),
4814            "::",
4815            stringify!(interrupt_flag)
4816        )
4817    );
4818    assert_eq!(
4819        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).interrupt_mask as *const _ as usize },
4820        280usize,
4821        concat!(
4822            "Offset of field: ",
4823            stringify!(rb_thread_struct),
4824            "::",
4825            stringify!(interrupt_mask)
4826        )
4827    );
4828    assert_eq!(
4829        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).interrupt_lock as *const _ as usize },
4830        288usize,
4831        concat!(
4832            "Offset of field: ",
4833            stringify!(rb_thread_struct),
4834            "::",
4835            stringify!(interrupt_lock)
4836        )
4837    );
4838    assert_eq!(
4839        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).unblock as *const _ as usize },
4840        328usize,
4841        concat!(
4842            "Offset of field: ",
4843            stringify!(rb_thread_struct),
4844            "::",
4845            stringify!(unblock)
4846        )
4847    );
4848    assert_eq!(
4849        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).locking_mutex as *const _ as usize },
4850        344usize,
4851        concat!(
4852            "Offset of field: ",
4853            stringify!(rb_thread_struct),
4854            "::",
4855            stringify!(locking_mutex)
4856        )
4857    );
4858    assert_eq!(
4859        unsafe {
4860            &(*(::std::ptr::null::<rb_thread_struct>())).keeping_mutexes as *const _ as usize
4861        },
4862        352usize,
4863        concat!(
4864            "Offset of field: ",
4865            stringify!(rb_thread_struct),
4866            "::",
4867            stringify!(keeping_mutexes)
4868        )
4869    );
4870    assert_eq!(
4871        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).tag as *const _ as usize },
4872        360usize,
4873        concat!(
4874            "Offset of field: ",
4875            stringify!(rb_thread_struct),
4876            "::",
4877            stringify!(tag)
4878        )
4879    );
4880    assert_eq!(
4881        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).protect_tag as *const _ as usize },
4882        368usize,
4883        concat!(
4884            "Offset of field: ",
4885            stringify!(rb_thread_struct),
4886            "::",
4887            stringify!(protect_tag)
4888        )
4889    );
4890    assert_eq!(
4891        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).parse_in_eval as *const _ as usize },
4892        376usize,
4893        concat!(
4894            "Offset of field: ",
4895            stringify!(rb_thread_struct),
4896            "::",
4897            stringify!(parse_in_eval)
4898        )
4899    );
4900    assert_eq!(
4901        unsafe {
4902            &(*(::std::ptr::null::<rb_thread_struct>())).mild_compile_error as *const _ as usize
4903        },
4904        380usize,
4905        concat!(
4906            "Offset of field: ",
4907            stringify!(rb_thread_struct),
4908            "::",
4909            stringify!(mild_compile_error)
4910        )
4911    );
4912    assert_eq!(
4913        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).local_storage as *const _ as usize },
4914        384usize,
4915        concat!(
4916            "Offset of field: ",
4917            stringify!(rb_thread_struct),
4918            "::",
4919            stringify!(local_storage)
4920        )
4921    );
4922    assert_eq!(
4923        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).join_list as *const _ as usize },
4924        392usize,
4925        concat!(
4926            "Offset of field: ",
4927            stringify!(rb_thread_struct),
4928            "::",
4929            stringify!(join_list)
4930        )
4931    );
4932    assert_eq!(
4933        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).first_proc as *const _ as usize },
4934        400usize,
4935        concat!(
4936            "Offset of field: ",
4937            stringify!(rb_thread_struct),
4938            "::",
4939            stringify!(first_proc)
4940        )
4941    );
4942    assert_eq!(
4943        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).first_args as *const _ as usize },
4944        408usize,
4945        concat!(
4946            "Offset of field: ",
4947            stringify!(rb_thread_struct),
4948            "::",
4949            stringify!(first_args)
4950        )
4951    );
4952    assert_eq!(
4953        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).first_func as *const _ as usize },
4954        416usize,
4955        concat!(
4956            "Offset of field: ",
4957            stringify!(rb_thread_struct),
4958            "::",
4959            stringify!(first_func)
4960        )
4961    );
4962    assert_eq!(
4963        unsafe {
4964            &(*(::std::ptr::null::<rb_thread_struct>())).machine_stack_start as *const _ as usize
4965        },
4966        424usize,
4967        concat!(
4968            "Offset of field: ",
4969            stringify!(rb_thread_struct),
4970            "::",
4971            stringify!(machine_stack_start)
4972        )
4973    );
4974    assert_eq!(
4975        unsafe {
4976            &(*(::std::ptr::null::<rb_thread_struct>())).machine_stack_end as *const _ as usize
4977        },
4978        432usize,
4979        concat!(
4980            "Offset of field: ",
4981            stringify!(rb_thread_struct),
4982            "::",
4983            stringify!(machine_stack_end)
4984        )
4985    );
4986    assert_eq!(
4987        unsafe {
4988            &(*(::std::ptr::null::<rb_thread_struct>())).machine_stack_maxsize as *const _ as usize
4989        },
4990        440usize,
4991        concat!(
4992            "Offset of field: ",
4993            stringify!(rb_thread_struct),
4994            "::",
4995            stringify!(machine_stack_maxsize)
4996        )
4997    );
4998    assert_eq!(
4999        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).machine_regs as *const _ as usize },
5000        448usize,
5001        concat!(
5002            "Offset of field: ",
5003            stringify!(rb_thread_struct),
5004            "::",
5005            stringify!(machine_regs)
5006        )
5007    );
5008    assert_eq!(
5009        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).mark_stack_len as *const _ as usize },
5010        648usize,
5011        concat!(
5012            "Offset of field: ",
5013            stringify!(rb_thread_struct),
5014            "::",
5015            stringify!(mark_stack_len)
5016        )
5017    );
5018    assert_eq!(
5019        unsafe {
5020            &(*(::std::ptr::null::<rb_thread_struct>())).stat_insn_usage as *const _ as usize
5021        },
5022        656usize,
5023        concat!(
5024            "Offset of field: ",
5025            stringify!(rb_thread_struct),
5026            "::",
5027            stringify!(stat_insn_usage)
5028        )
5029    );
5030    assert_eq!(
5031        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).event_hooks as *const _ as usize },
5032        664usize,
5033        concat!(
5034            "Offset of field: ",
5035            stringify!(rb_thread_struct),
5036            "::",
5037            stringify!(event_hooks)
5038        )
5039    );
5040    assert_eq!(
5041        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).trace_arg as *const _ as usize },
5042        688usize,
5043        concat!(
5044            "Offset of field: ",
5045            stringify!(rb_thread_struct),
5046            "::",
5047            stringify!(trace_arg)
5048        )
5049    );
5050    assert_eq!(
5051        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).fiber as *const _ as usize },
5052        696usize,
5053        concat!(
5054            "Offset of field: ",
5055            stringify!(rb_thread_struct),
5056            "::",
5057            stringify!(fiber)
5058        )
5059    );
5060    assert_eq!(
5061        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).root_fiber as *const _ as usize },
5062        704usize,
5063        concat!(
5064            "Offset of field: ",
5065            stringify!(rb_thread_struct),
5066            "::",
5067            stringify!(root_fiber)
5068        )
5069    );
5070    assert_eq!(
5071        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).root_jmpbuf as *const _ as usize },
5072        712usize,
5073        concat!(
5074            "Offset of field: ",
5075            stringify!(rb_thread_struct),
5076            "::",
5077            stringify!(root_jmpbuf)
5078        )
5079    );
5080    assert_eq!(
5081        unsafe {
5082            &(*(::std::ptr::null::<rb_thread_struct>())).method_missing_reason as *const _ as usize
5083        },
5084        912usize,
5085        concat!(
5086            "Offset of field: ",
5087            stringify!(rb_thread_struct),
5088            "::",
5089            stringify!(method_missing_reason)
5090        )
5091    );
5092    assert_eq!(
5093        unsafe {
5094            &(*(::std::ptr::null::<rb_thread_struct>())).abort_on_exception as *const _ as usize
5095        },
5096        916usize,
5097        concat!(
5098            "Offset of field: ",
5099            stringify!(rb_thread_struct),
5100            "::",
5101            stringify!(abort_on_exception)
5102        )
5103    );
5104    assert_eq!(
5105        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).altstack as *const _ as usize },
5106        920usize,
5107        concat!(
5108            "Offset of field: ",
5109            stringify!(rb_thread_struct),
5110            "::",
5111            stringify!(altstack)
5112        )
5113    );
5114    assert_eq!(
5115        unsafe {
5116            &(*(::std::ptr::null::<rb_thread_struct>())).running_time_us as *const _ as usize
5117        },
5118        928usize,
5119        concat!(
5120            "Offset of field: ",
5121            stringify!(rb_thread_struct),
5122            "::",
5123            stringify!(running_time_us)
5124        )
5125    );
5126}
5127impl ::std::fmt::Debug for rb_thread_struct {
5128    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
5129        write ! ( f , "rb_thread_struct {{ self: {:?}, vm: {:?}, stack: {:?}, stack_size: {:?}, cfp: {:?}, safe_level: {:?}, raised_flag: {:?}, last_status: {:?}, state: {:?}, waiting_fd: {:?}, passed_block: {:?}, passed_me: {:?}, passed_ci: {:?}, top_self: {:?}, top_wrapper: {:?}, base_block: {:?}, root_lep: {:?}, root_svar: {:?}, thread_id: {:?}, status: {:?}, to_kill: {:?}, priority: {:?}, native_thread_data: {:?}, blocking_region_buffer: {:?}, thgroup: {:?}, value: {:?}, errinfo: {:?}, pending_interrupt_queue: {:?}, pending_interrupt_queue_checked: {:?}, pending_interrupt_mask_stack: {:?}, interrupt_flag: {:?}, interrupt_mask: {:?}, interrupt_lock: {:?}, unblock: {:?}, locking_mutex: {:?}, keeping_mutexes: {:?}, tag: {:?}, protect_tag: {:?}, parse_in_eval: {:?}, mild_compile_error: {:?}, local_storage: {:?}, join_list: {:?}, first_proc: {:?}, first_args: {:?}, first_func: {:?}, machine_stack_start: {:?}, machine_stack_end: {:?}, machine_stack_maxsize: {:?}, machine_regs: {:?}, mark_stack_len: {:?}, stat_insn_usage: {:?}, event_hooks: {:?}, trace_arg: {:?}, fiber: {:?}, root_fiber: {:?}, root_jmpbuf: {:?}, method_missing_reason: {:?}, abort_on_exception: {:?}, altstack: {:?}, running_time_us: {:?} }}" , self . self_ , self . vm , self . stack , self . stack_size , self . cfp , self . safe_level , self . raised_flag , self . last_status , self . state , self . waiting_fd , self . passed_block , self . passed_me , self . passed_ci , self . top_self , self . top_wrapper , self . base_block , self . root_lep , self . root_svar , self . thread_id , self . status , self . to_kill , self . priority , self . native_thread_data , self . blocking_region_buffer , self . thgroup , self . value , self . errinfo , self . pending_interrupt_queue , self . pending_interrupt_queue_checked , self . pending_interrupt_mask_stack , self . interrupt_flag , self . interrupt_mask , self . interrupt_lock , self . unblock , self . locking_mutex , self . keeping_mutexes , self . tag , self . protect_tag , self . parse_in_eval , self . mild_compile_error , self . local_storage , self . join_list , self . first_proc , self . first_args , self . first_func , self . machine_stack_start , self . machine_stack_end , self . machine_stack_maxsize , self . machine_regs , self . mark_stack_len , self . stat_insn_usage , self . event_hooks , self . trace_arg , self . fiber , self . root_fiber , self . root_jmpbuf , self . method_missing_reason , self . abort_on_exception , self . altstack , self . running_time_us )
5130    }
5131}
5132pub type rb_thread_t = rb_thread_struct;
5133#[repr(C)]
5134#[derive(Debug, Copy, Clone)]
5135pub struct rb_trace_arg_struct {
5136    pub event: rb_event_flag_t,
5137    pub th: *mut rb_thread_t,
5138    pub cfp: *mut rb_control_frame_t,
5139    pub self_: VALUE,
5140    pub id: ID,
5141    pub klass: VALUE,
5142    pub data: VALUE,
5143    pub klass_solved: ::std::os::raw::c_int,
5144    pub lineno: ::std::os::raw::c_int,
5145    pub path: VALUE,
5146}
5147#[test]
5148fn bindgen_test_layout_rb_trace_arg_struct() {
5149    assert_eq!(
5150        ::std::mem::size_of::<rb_trace_arg_struct>(),
5151        72usize,
5152        concat!("Size of: ", stringify!(rb_trace_arg_struct))
5153    );
5154    assert_eq!(
5155        ::std::mem::align_of::<rb_trace_arg_struct>(),
5156        8usize,
5157        concat!("Alignment of ", stringify!(rb_trace_arg_struct))
5158    );
5159    assert_eq!(
5160        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).event as *const _ as usize },
5161        0usize,
5162        concat!(
5163            "Offset of field: ",
5164            stringify!(rb_trace_arg_struct),
5165            "::",
5166            stringify!(event)
5167        )
5168    );
5169    assert_eq!(
5170        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).th as *const _ as usize },
5171        8usize,
5172        concat!(
5173            "Offset of field: ",
5174            stringify!(rb_trace_arg_struct),
5175            "::",
5176            stringify!(th)
5177        )
5178    );
5179    assert_eq!(
5180        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).cfp as *const _ as usize },
5181        16usize,
5182        concat!(
5183            "Offset of field: ",
5184            stringify!(rb_trace_arg_struct),
5185            "::",
5186            stringify!(cfp)
5187        )
5188    );
5189    assert_eq!(
5190        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).self_ as *const _ as usize },
5191        24usize,
5192        concat!(
5193            "Offset of field: ",
5194            stringify!(rb_trace_arg_struct),
5195            "::",
5196            stringify!(self_)
5197        )
5198    );
5199    assert_eq!(
5200        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).id as *const _ as usize },
5201        32usize,
5202        concat!(
5203            "Offset of field: ",
5204            stringify!(rb_trace_arg_struct),
5205            "::",
5206            stringify!(id)
5207        )
5208    );
5209    assert_eq!(
5210        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).klass as *const _ as usize },
5211        40usize,
5212        concat!(
5213            "Offset of field: ",
5214            stringify!(rb_trace_arg_struct),
5215            "::",
5216            stringify!(klass)
5217        )
5218    );
5219    assert_eq!(
5220        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).data as *const _ as usize },
5221        48usize,
5222        concat!(
5223            "Offset of field: ",
5224            stringify!(rb_trace_arg_struct),
5225            "::",
5226            stringify!(data)
5227        )
5228    );
5229    assert_eq!(
5230        unsafe {
5231            &(*(::std::ptr::null::<rb_trace_arg_struct>())).klass_solved as *const _ as usize
5232        },
5233        56usize,
5234        concat!(
5235            "Offset of field: ",
5236            stringify!(rb_trace_arg_struct),
5237            "::",
5238            stringify!(klass_solved)
5239        )
5240    );
5241    assert_eq!(
5242        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).lineno as *const _ as usize },
5243        60usize,
5244        concat!(
5245            "Offset of field: ",
5246            stringify!(rb_trace_arg_struct),
5247            "::",
5248            stringify!(lineno)
5249        )
5250    );
5251    assert_eq!(
5252        unsafe { &(*(::std::ptr::null::<rb_trace_arg_struct>())).path as *const _ as usize },
5253        64usize,
5254        concat!(
5255            "Offset of field: ",
5256            stringify!(rb_trace_arg_struct),
5257            "::",
5258            stringify!(path)
5259        )
5260    );
5261}
5262#[repr(C)]
5263#[derive(Debug, Copy, Clone)]
5264pub struct rb_compile_option_struct {
5265    pub inline_const_cache: ::std::os::raw::c_int,
5266    pub peephole_optimization: ::std::os::raw::c_int,
5267    pub tailcall_optimization: ::std::os::raw::c_int,
5268    pub specialized_instruction: ::std::os::raw::c_int,
5269    pub operands_unification: ::std::os::raw::c_int,
5270    pub instructions_unification: ::std::os::raw::c_int,
5271    pub stack_caching: ::std::os::raw::c_int,
5272    pub trace_instruction: ::std::os::raw::c_int,
5273    pub debug_level: ::std::os::raw::c_int,
5274}
5275#[test]
5276fn bindgen_test_layout_rb_compile_option_struct() {
5277    assert_eq!(
5278        ::std::mem::size_of::<rb_compile_option_struct>(),
5279        36usize,
5280        concat!("Size of: ", stringify!(rb_compile_option_struct))
5281    );
5282    assert_eq!(
5283        ::std::mem::align_of::<rb_compile_option_struct>(),
5284        4usize,
5285        concat!("Alignment of ", stringify!(rb_compile_option_struct))
5286    );
5287    assert_eq!(
5288        unsafe {
5289            &(*(::std::ptr::null::<rb_compile_option_struct>())).inline_const_cache as *const _
5290                as usize
5291        },
5292        0usize,
5293        concat!(
5294            "Offset of field: ",
5295            stringify!(rb_compile_option_struct),
5296            "::",
5297            stringify!(inline_const_cache)
5298        )
5299    );
5300    assert_eq!(
5301        unsafe {
5302            &(*(::std::ptr::null::<rb_compile_option_struct>())).peephole_optimization as *const _
5303                as usize
5304        },
5305        4usize,
5306        concat!(
5307            "Offset of field: ",
5308            stringify!(rb_compile_option_struct),
5309            "::",
5310            stringify!(peephole_optimization)
5311        )
5312    );
5313    assert_eq!(
5314        unsafe {
5315            &(*(::std::ptr::null::<rb_compile_option_struct>())).tailcall_optimization as *const _
5316                as usize
5317        },
5318        8usize,
5319        concat!(
5320            "Offset of field: ",
5321            stringify!(rb_compile_option_struct),
5322            "::",
5323            stringify!(tailcall_optimization)
5324        )
5325    );
5326    assert_eq!(
5327        unsafe {
5328            &(*(::std::ptr::null::<rb_compile_option_struct>())).specialized_instruction as *const _
5329                as usize
5330        },
5331        12usize,
5332        concat!(
5333            "Offset of field: ",
5334            stringify!(rb_compile_option_struct),
5335            "::",
5336            stringify!(specialized_instruction)
5337        )
5338    );
5339    assert_eq!(
5340        unsafe {
5341            &(*(::std::ptr::null::<rb_compile_option_struct>())).operands_unification as *const _
5342                as usize
5343        },
5344        16usize,
5345        concat!(
5346            "Offset of field: ",
5347            stringify!(rb_compile_option_struct),
5348            "::",
5349            stringify!(operands_unification)
5350        )
5351    );
5352    assert_eq!(
5353        unsafe {
5354            &(*(::std::ptr::null::<rb_compile_option_struct>())).instructions_unification
5355                as *const _ as usize
5356        },
5357        20usize,
5358        concat!(
5359            "Offset of field: ",
5360            stringify!(rb_compile_option_struct),
5361            "::",
5362            stringify!(instructions_unification)
5363        )
5364    );
5365    assert_eq!(
5366        unsafe {
5367            &(*(::std::ptr::null::<rb_compile_option_struct>())).stack_caching as *const _ as usize
5368        },
5369        24usize,
5370        concat!(
5371            "Offset of field: ",
5372            stringify!(rb_compile_option_struct),
5373            "::",
5374            stringify!(stack_caching)
5375        )
5376    );
5377    assert_eq!(
5378        unsafe {
5379            &(*(::std::ptr::null::<rb_compile_option_struct>())).trace_instruction as *const _
5380                as usize
5381        },
5382        28usize,
5383        concat!(
5384            "Offset of field: ",
5385            stringify!(rb_compile_option_struct),
5386            "::",
5387            stringify!(trace_instruction)
5388        )
5389    );
5390    assert_eq!(
5391        unsafe {
5392            &(*(::std::ptr::null::<rb_compile_option_struct>())).debug_level as *const _ as usize
5393        },
5394        32usize,
5395        concat!(
5396            "Offset of field: ",
5397            stringify!(rb_compile_option_struct),
5398            "::",
5399            stringify!(debug_level)
5400        )
5401    );
5402}
5403#[repr(C)]
5404#[derive(Debug, Copy, Clone)]
5405pub struct iseq_line_info_entry {
5406    pub position: ::std::os::raw::c_uint,
5407    pub line_no: ::std::os::raw::c_uint,
5408}
5409#[test]
5410fn bindgen_test_layout_iseq_line_info_entry() {
5411    assert_eq!(
5412        ::std::mem::size_of::<iseq_line_info_entry>(),
5413        8usize,
5414        concat!("Size of: ", stringify!(iseq_line_info_entry))
5415    );
5416    assert_eq!(
5417        ::std::mem::align_of::<iseq_line_info_entry>(),
5418        4usize,
5419        concat!("Alignment of ", stringify!(iseq_line_info_entry))
5420    );
5421    assert_eq!(
5422        unsafe { &(*(::std::ptr::null::<iseq_line_info_entry>())).position as *const _ as usize },
5423        0usize,
5424        concat!(
5425            "Offset of field: ",
5426            stringify!(iseq_line_info_entry),
5427            "::",
5428            stringify!(position)
5429        )
5430    );
5431    assert_eq!(
5432        unsafe { &(*(::std::ptr::null::<iseq_line_info_entry>())).line_no as *const _ as usize },
5433        4usize,
5434        concat!(
5435            "Offset of field: ",
5436            stringify!(iseq_line_info_entry),
5437            "::",
5438            stringify!(line_no)
5439        )
5440    );
5441}
5442#[repr(C)]
5443#[derive(Debug, Copy, Clone)]
5444pub struct iseq_catch_table_entry {
5445    pub type_: iseq_catch_table_entry_catch_type,
5446    pub iseq: VALUE,
5447    pub start: ::std::os::raw::c_ulong,
5448    pub end: ::std::os::raw::c_ulong,
5449    pub cont: ::std::os::raw::c_ulong,
5450    pub sp: ::std::os::raw::c_ulong,
5451}
5452pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RESCUE: iseq_catch_table_entry_catch_type =
5453    3;
5454pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_ENSURE: iseq_catch_table_entry_catch_type =
5455    5;
5456pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RETRY: iseq_catch_table_entry_catch_type = 7;
5457pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_BREAK: iseq_catch_table_entry_catch_type = 9;
5458pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_REDO: iseq_catch_table_entry_catch_type = 11;
5459pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_NEXT: iseq_catch_table_entry_catch_type = 13;
5460pub type iseq_catch_table_entry_catch_type = ::std::os::raw::c_uint;
5461#[test]
5462fn bindgen_test_layout_iseq_catch_table_entry() {
5463    assert_eq!(
5464        ::std::mem::size_of::<iseq_catch_table_entry>(),
5465        48usize,
5466        concat!("Size of: ", stringify!(iseq_catch_table_entry))
5467    );
5468    assert_eq!(
5469        ::std::mem::align_of::<iseq_catch_table_entry>(),
5470        8usize,
5471        concat!("Alignment of ", stringify!(iseq_catch_table_entry))
5472    );
5473    assert_eq!(
5474        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).type_ as *const _ as usize },
5475        0usize,
5476        concat!(
5477            "Offset of field: ",
5478            stringify!(iseq_catch_table_entry),
5479            "::",
5480            stringify!(type_)
5481        )
5482    );
5483    assert_eq!(
5484        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).iseq as *const _ as usize },
5485        8usize,
5486        concat!(
5487            "Offset of field: ",
5488            stringify!(iseq_catch_table_entry),
5489            "::",
5490            stringify!(iseq)
5491        )
5492    );
5493    assert_eq!(
5494        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).start as *const _ as usize },
5495        16usize,
5496        concat!(
5497            "Offset of field: ",
5498            stringify!(iseq_catch_table_entry),
5499            "::",
5500            stringify!(start)
5501        )
5502    );
5503    assert_eq!(
5504        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).end as *const _ as usize },
5505        24usize,
5506        concat!(
5507            "Offset of field: ",
5508            stringify!(iseq_catch_table_entry),
5509            "::",
5510            stringify!(end)
5511        )
5512    );
5513    assert_eq!(
5514        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).cont as *const _ as usize },
5515        32usize,
5516        concat!(
5517            "Offset of field: ",
5518            stringify!(iseq_catch_table_entry),
5519            "::",
5520            stringify!(cont)
5521        )
5522    );
5523    assert_eq!(
5524        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).sp as *const _ as usize },
5525        40usize,
5526        concat!(
5527            "Offset of field: ",
5528            stringify!(iseq_catch_table_entry),
5529            "::",
5530            stringify!(sp)
5531        )
5532    );
5533}
5534#[repr(C)]
5535#[derive(Debug, Copy, Clone)]
5536pub struct iseq_compile_data_storage {
5537    pub next: *mut iseq_compile_data_storage,
5538    pub pos: ::std::os::raw::c_ulong,
5539    pub size: ::std::os::raw::c_ulong,
5540    pub buff: *mut ::std::os::raw::c_char,
5541}
5542#[test]
5543fn bindgen_test_layout_iseq_compile_data_storage() {
5544    assert_eq!(
5545        ::std::mem::size_of::<iseq_compile_data_storage>(),
5546        32usize,
5547        concat!("Size of: ", stringify!(iseq_compile_data_storage))
5548    );
5549    assert_eq!(
5550        ::std::mem::align_of::<iseq_compile_data_storage>(),
5551        8usize,
5552        concat!("Alignment of ", stringify!(iseq_compile_data_storage))
5553    );
5554    assert_eq!(
5555        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).next as *const _ as usize },
5556        0usize,
5557        concat!(
5558            "Offset of field: ",
5559            stringify!(iseq_compile_data_storage),
5560            "::",
5561            stringify!(next)
5562        )
5563    );
5564    assert_eq!(
5565        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).pos as *const _ as usize },
5566        8usize,
5567        concat!(
5568            "Offset of field: ",
5569            stringify!(iseq_compile_data_storage),
5570            "::",
5571            stringify!(pos)
5572        )
5573    );
5574    assert_eq!(
5575        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).size as *const _ as usize },
5576        16usize,
5577        concat!(
5578            "Offset of field: ",
5579            stringify!(iseq_compile_data_storage),
5580            "::",
5581            stringify!(size)
5582        )
5583    );
5584    assert_eq!(
5585        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).buff as *const _ as usize },
5586        24usize,
5587        concat!(
5588            "Offset of field: ",
5589            stringify!(iseq_compile_data_storage),
5590            "::",
5591            stringify!(buff)
5592        )
5593    );
5594}
5595#[repr(C)]
5596#[derive(Debug, Copy, Clone)]
5597pub struct iseq_compile_data {
5598    pub err_info: VALUE,
5599    pub mark_ary: VALUE,
5600    pub catch_table_ary: VALUE,
5601    pub start_label: *mut iseq_label_data,
5602    pub end_label: *mut iseq_label_data,
5603    pub redo_label: *mut iseq_label_data,
5604    pub current_block: VALUE,
5605    pub ensure_node: VALUE,
5606    pub for_iseq: VALUE,
5607    pub ensure_node_stack: *mut iseq_compile_data_ensure_node_stack,
5608    pub loopval_popped: ::std::os::raw::c_int,
5609    pub cached_const: ::std::os::raw::c_int,
5610    pub storage_head: *mut iseq_compile_data_storage,
5611    pub storage_current: *mut iseq_compile_data_storage,
5612    pub last_line: ::std::os::raw::c_int,
5613    pub last_coverable_line: ::std::os::raw::c_int,
5614    pub label_no: ::std::os::raw::c_int,
5615    pub node_level: ::std::os::raw::c_int,
5616    pub option: *const rb_compile_option_t,
5617}
5618#[test]
5619fn bindgen_test_layout_iseq_compile_data() {
5620    assert_eq!(
5621        ::std::mem::size_of::<iseq_compile_data>(),
5622        128usize,
5623        concat!("Size of: ", stringify!(iseq_compile_data))
5624    );
5625    assert_eq!(
5626        ::std::mem::align_of::<iseq_compile_data>(),
5627        8usize,
5628        concat!("Alignment of ", stringify!(iseq_compile_data))
5629    );
5630    assert_eq!(
5631        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).err_info as *const _ as usize },
5632        0usize,
5633        concat!(
5634            "Offset of field: ",
5635            stringify!(iseq_compile_data),
5636            "::",
5637            stringify!(err_info)
5638        )
5639    );
5640    assert_eq!(
5641        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).mark_ary as *const _ as usize },
5642        8usize,
5643        concat!(
5644            "Offset of field: ",
5645            stringify!(iseq_compile_data),
5646            "::",
5647            stringify!(mark_ary)
5648        )
5649    );
5650    assert_eq!(
5651        unsafe {
5652            &(*(::std::ptr::null::<iseq_compile_data>())).catch_table_ary as *const _ as usize
5653        },
5654        16usize,
5655        concat!(
5656            "Offset of field: ",
5657            stringify!(iseq_compile_data),
5658            "::",
5659            stringify!(catch_table_ary)
5660        )
5661    );
5662    assert_eq!(
5663        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).start_label as *const _ as usize },
5664        24usize,
5665        concat!(
5666            "Offset of field: ",
5667            stringify!(iseq_compile_data),
5668            "::",
5669            stringify!(start_label)
5670        )
5671    );
5672    assert_eq!(
5673        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).end_label as *const _ as usize },
5674        32usize,
5675        concat!(
5676            "Offset of field: ",
5677            stringify!(iseq_compile_data),
5678            "::",
5679            stringify!(end_label)
5680        )
5681    );
5682    assert_eq!(
5683        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).redo_label as *const _ as usize },
5684        40usize,
5685        concat!(
5686            "Offset of field: ",
5687            stringify!(iseq_compile_data),
5688            "::",
5689            stringify!(redo_label)
5690        )
5691    );
5692    assert_eq!(
5693        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).current_block as *const _ as usize },
5694        48usize,
5695        concat!(
5696            "Offset of field: ",
5697            stringify!(iseq_compile_data),
5698            "::",
5699            stringify!(current_block)
5700        )
5701    );
5702    assert_eq!(
5703        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).ensure_node as *const _ as usize },
5704        56usize,
5705        concat!(
5706            "Offset of field: ",
5707            stringify!(iseq_compile_data),
5708            "::",
5709            stringify!(ensure_node)
5710        )
5711    );
5712    assert_eq!(
5713        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).for_iseq as *const _ as usize },
5714        64usize,
5715        concat!(
5716            "Offset of field: ",
5717            stringify!(iseq_compile_data),
5718            "::",
5719            stringify!(for_iseq)
5720        )
5721    );
5722    assert_eq!(
5723        unsafe {
5724            &(*(::std::ptr::null::<iseq_compile_data>())).ensure_node_stack as *const _ as usize
5725        },
5726        72usize,
5727        concat!(
5728            "Offset of field: ",
5729            stringify!(iseq_compile_data),
5730            "::",
5731            stringify!(ensure_node_stack)
5732        )
5733    );
5734    assert_eq!(
5735        unsafe {
5736            &(*(::std::ptr::null::<iseq_compile_data>())).loopval_popped as *const _ as usize
5737        },
5738        80usize,
5739        concat!(
5740            "Offset of field: ",
5741            stringify!(iseq_compile_data),
5742            "::",
5743            stringify!(loopval_popped)
5744        )
5745    );
5746    assert_eq!(
5747        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).cached_const as *const _ as usize },
5748        84usize,
5749        concat!(
5750            "Offset of field: ",
5751            stringify!(iseq_compile_data),
5752            "::",
5753            stringify!(cached_const)
5754        )
5755    );
5756    assert_eq!(
5757        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).storage_head as *const _ as usize },
5758        88usize,
5759        concat!(
5760            "Offset of field: ",
5761            stringify!(iseq_compile_data),
5762            "::",
5763            stringify!(storage_head)
5764        )
5765    );
5766    assert_eq!(
5767        unsafe {
5768            &(*(::std::ptr::null::<iseq_compile_data>())).storage_current as *const _ as usize
5769        },
5770        96usize,
5771        concat!(
5772            "Offset of field: ",
5773            stringify!(iseq_compile_data),
5774            "::",
5775            stringify!(storage_current)
5776        )
5777    );
5778    assert_eq!(
5779        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).last_line as *const _ as usize },
5780        104usize,
5781        concat!(
5782            "Offset of field: ",
5783            stringify!(iseq_compile_data),
5784            "::",
5785            stringify!(last_line)
5786        )
5787    );
5788    assert_eq!(
5789        unsafe {
5790            &(*(::std::ptr::null::<iseq_compile_data>())).last_coverable_line as *const _ as usize
5791        },
5792        108usize,
5793        concat!(
5794            "Offset of field: ",
5795            stringify!(iseq_compile_data),
5796            "::",
5797            stringify!(last_coverable_line)
5798        )
5799    );
5800    assert_eq!(
5801        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).label_no as *const _ as usize },
5802        112usize,
5803        concat!(
5804            "Offset of field: ",
5805            stringify!(iseq_compile_data),
5806            "::",
5807            stringify!(label_no)
5808        )
5809    );
5810    assert_eq!(
5811        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).node_level as *const _ as usize },
5812        116usize,
5813        concat!(
5814            "Offset of field: ",
5815            stringify!(iseq_compile_data),
5816            "::",
5817            stringify!(node_level)
5818        )
5819    );
5820    assert_eq!(
5821        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).option as *const _ as usize },
5822        120usize,
5823        concat!(
5824            "Offset of field: ",
5825            stringify!(iseq_compile_data),
5826            "::",
5827            stringify!(option)
5828        )
5829    );
5830}
5831#[repr(C)]
5832#[derive(Debug, Copy, Clone)]
5833pub struct st_table_entry {
5834    pub _address: u8,
5835}
5836#[repr(C)]
5837#[derive(Debug, Copy, Clone)]
5838pub struct st_packed_entry {
5839    pub _address: u8,
5840}
5841#[repr(C)]
5842#[derive(Debug, Copy, Clone)]
5843pub struct rb_event_hook_struct {
5844    pub _address: u8,
5845}
5846#[repr(C)]
5847#[derive(Debug, Copy, Clone)]
5848pub struct iseq_label_data {
5849    pub _address: u8,
5850}