rbspy_ruby_structs/
ruby_1_9_3_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(Debug, 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 bins: *mut *mut st_table_entry,
1061    pub head: *mut st_table_entry,
1062    pub tail: *mut st_table_entry,
1063}
1064#[test]
1065fn bindgen_test_layout_st_table() {
1066    assert_eq!(
1067        ::std::mem::size_of::<st_table>(),
1068        48usize,
1069        concat!("Size of: ", stringify!(st_table))
1070    );
1071    assert_eq!(
1072        ::std::mem::align_of::<st_table>(),
1073        8usize,
1074        concat!("Alignment of ", stringify!(st_table))
1075    );
1076    assert_eq!(
1077        unsafe { &(*(::std::ptr::null::<st_table>())).type_ as *const _ as usize },
1078        0usize,
1079        concat!(
1080            "Offset of field: ",
1081            stringify!(st_table),
1082            "::",
1083            stringify!(type_)
1084        )
1085    );
1086    assert_eq!(
1087        unsafe { &(*(::std::ptr::null::<st_table>())).num_bins as *const _ as usize },
1088        8usize,
1089        concat!(
1090            "Offset of field: ",
1091            stringify!(st_table),
1092            "::",
1093            stringify!(num_bins)
1094        )
1095    );
1096    assert_eq!(
1097        unsafe { &(*(::std::ptr::null::<st_table>())).bins as *const _ as usize },
1098        24usize,
1099        concat!(
1100            "Offset of field: ",
1101            stringify!(st_table),
1102            "::",
1103            stringify!(bins)
1104        )
1105    );
1106    assert_eq!(
1107        unsafe { &(*(::std::ptr::null::<st_table>())).head as *const _ as usize },
1108        32usize,
1109        concat!(
1110            "Offset of field: ",
1111            stringify!(st_table),
1112            "::",
1113            stringify!(head)
1114        )
1115    );
1116    assert_eq!(
1117        unsafe { &(*(::std::ptr::null::<st_table>())).tail as *const _ as usize },
1118        40usize,
1119        concat!(
1120            "Offset of field: ",
1121            stringify!(st_table),
1122            "::",
1123            stringify!(tail)
1124        )
1125    );
1126}
1127impl st_table {
1128    #[inline]
1129    pub fn entries_packed(&self) -> ::std::os::raw::c_uint {
1130        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1131    }
1132    #[inline]
1133    pub fn set_entries_packed(&mut self, val: ::std::os::raw::c_uint) {
1134        unsafe {
1135            let val: u32 = ::std::mem::transmute(val);
1136            self._bitfield_1.set(0usize, 1u8, val as u64)
1137        }
1138    }
1139    #[inline]
1140    pub fn num_entries(&self) -> st_index_t {
1141        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 63u8) as usize) }
1142    }
1143    #[inline]
1144    pub fn set_num_entries(&mut self, val: st_index_t) {
1145        unsafe {
1146            let val: usize = ::std::mem::transmute(val);
1147            self._bitfield_1.set(1usize, 63u8, val as u64)
1148        }
1149    }
1150    #[inline]
1151    pub fn new_bitfield_1(
1152        entries_packed: ::std::os::raw::c_uint,
1153        num_entries: st_index_t,
1154    ) -> __BindgenBitfieldUnit<[u8; 8usize], u64> {
1155        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u64> =
1156            Default::default();
1157        __bindgen_bitfield_unit.set(0usize, 1u8, {
1158            let entries_packed: u32 = unsafe { ::std::mem::transmute(entries_packed) };
1159            entries_packed as u64
1160        });
1161        __bindgen_bitfield_unit.set(1usize, 63u8, {
1162            let num_entries: usize = unsafe { ::std::mem::transmute(num_entries) };
1163            num_entries as u64
1164        });
1165        __bindgen_bitfield_unit
1166    }
1167}
1168pub type rb_unblock_function_t =
1169    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
1170pub type rb_event_flag_t = ::std::os::raw::c_uint;
1171pub type rb_event_hook_func_t = ::std::option::Option<
1172    unsafe extern "C" fn(arg1: rb_event_flag_t, data: VALUE, arg2: VALUE, arg3: ID, klass: VALUE),
1173>;
1174#[repr(C)]
1175#[derive(Debug, Copy, Clone)]
1176pub struct rb_event_hook_struct {
1177    pub flag: rb_event_flag_t,
1178    pub func: rb_event_hook_func_t,
1179    pub data: VALUE,
1180    pub next: *mut rb_event_hook_struct,
1181}
1182#[test]
1183fn bindgen_test_layout_rb_event_hook_struct() {
1184    assert_eq!(
1185        ::std::mem::size_of::<rb_event_hook_struct>(),
1186        32usize,
1187        concat!("Size of: ", stringify!(rb_event_hook_struct))
1188    );
1189    assert_eq!(
1190        ::std::mem::align_of::<rb_event_hook_struct>(),
1191        8usize,
1192        concat!("Alignment of ", stringify!(rb_event_hook_struct))
1193    );
1194    assert_eq!(
1195        unsafe { &(*(::std::ptr::null::<rb_event_hook_struct>())).flag as *const _ as usize },
1196        0usize,
1197        concat!(
1198            "Offset of field: ",
1199            stringify!(rb_event_hook_struct),
1200            "::",
1201            stringify!(flag)
1202        )
1203    );
1204    assert_eq!(
1205        unsafe { &(*(::std::ptr::null::<rb_event_hook_struct>())).func as *const _ as usize },
1206        8usize,
1207        concat!(
1208            "Offset of field: ",
1209            stringify!(rb_event_hook_struct),
1210            "::",
1211            stringify!(func)
1212        )
1213    );
1214    assert_eq!(
1215        unsafe { &(*(::std::ptr::null::<rb_event_hook_struct>())).data as *const _ as usize },
1216        16usize,
1217        concat!(
1218            "Offset of field: ",
1219            stringify!(rb_event_hook_struct),
1220            "::",
1221            stringify!(data)
1222        )
1223    );
1224    assert_eq!(
1225        unsafe { &(*(::std::ptr::null::<rb_event_hook_struct>())).next as *const _ as usize },
1226        24usize,
1227        concat!(
1228            "Offset of field: ",
1229            stringify!(rb_event_hook_struct),
1230            "::",
1231            stringify!(next)
1232        )
1233    );
1234}
1235pub type rb_event_hook_t = rb_event_hook_struct;
1236#[repr(C)]
1237#[derive(Copy, Clone)]
1238pub struct RNode {
1239    pub flags: VALUE,
1240    pub nd_reserved: VALUE,
1241    pub u1: RNode__bindgen_ty_1,
1242    pub u2: RNode__bindgen_ty_2,
1243    pub u3: RNode__bindgen_ty_3,
1244}
1245#[repr(C)]
1246#[derive(Copy, Clone)]
1247pub union RNode__bindgen_ty_1 {
1248    pub node: *mut RNode,
1249    pub id: ID,
1250    pub value: VALUE,
1251    pub cfunc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1252    pub tbl: *mut ID,
1253    _bindgen_union_align: u64,
1254}
1255#[test]
1256fn bindgen_test_layout_RNode__bindgen_ty_1() {
1257    assert_eq!(
1258        ::std::mem::size_of::<RNode__bindgen_ty_1>(),
1259        8usize,
1260        concat!("Size of: ", stringify!(RNode__bindgen_ty_1))
1261    );
1262    assert_eq!(
1263        ::std::mem::align_of::<RNode__bindgen_ty_1>(),
1264        8usize,
1265        concat!("Alignment of ", stringify!(RNode__bindgen_ty_1))
1266    );
1267    assert_eq!(
1268        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).node as *const _ as usize },
1269        0usize,
1270        concat!(
1271            "Offset of field: ",
1272            stringify!(RNode__bindgen_ty_1),
1273            "::",
1274            stringify!(node)
1275        )
1276    );
1277    assert_eq!(
1278        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).id as *const _ as usize },
1279        0usize,
1280        concat!(
1281            "Offset of field: ",
1282            stringify!(RNode__bindgen_ty_1),
1283            "::",
1284            stringify!(id)
1285        )
1286    );
1287    assert_eq!(
1288        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).value as *const _ as usize },
1289        0usize,
1290        concat!(
1291            "Offset of field: ",
1292            stringify!(RNode__bindgen_ty_1),
1293            "::",
1294            stringify!(value)
1295        )
1296    );
1297    assert_eq!(
1298        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).cfunc as *const _ as usize },
1299        0usize,
1300        concat!(
1301            "Offset of field: ",
1302            stringify!(RNode__bindgen_ty_1),
1303            "::",
1304            stringify!(cfunc)
1305        )
1306    );
1307    assert_eq!(
1308        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_1>())).tbl as *const _ as usize },
1309        0usize,
1310        concat!(
1311            "Offset of field: ",
1312            stringify!(RNode__bindgen_ty_1),
1313            "::",
1314            stringify!(tbl)
1315        )
1316    );
1317}
1318impl ::std::fmt::Debug for RNode__bindgen_ty_1 {
1319    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1320        write!(f, "RNode__bindgen_ty_1 {{ union }}")
1321    }
1322}
1323#[repr(C)]
1324#[derive(Copy, Clone)]
1325pub union RNode__bindgen_ty_2 {
1326    pub node: *mut RNode,
1327    pub id: ID,
1328    pub argc: ::std::os::raw::c_long,
1329    pub value: VALUE,
1330    _bindgen_union_align: u64,
1331}
1332#[test]
1333fn bindgen_test_layout_RNode__bindgen_ty_2() {
1334    assert_eq!(
1335        ::std::mem::size_of::<RNode__bindgen_ty_2>(),
1336        8usize,
1337        concat!("Size of: ", stringify!(RNode__bindgen_ty_2))
1338    );
1339    assert_eq!(
1340        ::std::mem::align_of::<RNode__bindgen_ty_2>(),
1341        8usize,
1342        concat!("Alignment of ", stringify!(RNode__bindgen_ty_2))
1343    );
1344    assert_eq!(
1345        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).node as *const _ as usize },
1346        0usize,
1347        concat!(
1348            "Offset of field: ",
1349            stringify!(RNode__bindgen_ty_2),
1350            "::",
1351            stringify!(node)
1352        )
1353    );
1354    assert_eq!(
1355        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).id as *const _ as usize },
1356        0usize,
1357        concat!(
1358            "Offset of field: ",
1359            stringify!(RNode__bindgen_ty_2),
1360            "::",
1361            stringify!(id)
1362        )
1363    );
1364    assert_eq!(
1365        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).argc as *const _ as usize },
1366        0usize,
1367        concat!(
1368            "Offset of field: ",
1369            stringify!(RNode__bindgen_ty_2),
1370            "::",
1371            stringify!(argc)
1372        )
1373    );
1374    assert_eq!(
1375        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_2>())).value as *const _ as usize },
1376        0usize,
1377        concat!(
1378            "Offset of field: ",
1379            stringify!(RNode__bindgen_ty_2),
1380            "::",
1381            stringify!(value)
1382        )
1383    );
1384}
1385impl ::std::fmt::Debug for RNode__bindgen_ty_2 {
1386    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1387        write!(f, "RNode__bindgen_ty_2 {{ union }}")
1388    }
1389}
1390#[repr(C)]
1391#[derive(Copy, Clone)]
1392pub union RNode__bindgen_ty_3 {
1393    pub node: *mut RNode,
1394    pub id: ID,
1395    pub state: ::std::os::raw::c_long,
1396    pub entry: *mut rb_global_entry,
1397    pub cnt: ::std::os::raw::c_long,
1398    pub value: VALUE,
1399    _bindgen_union_align: u64,
1400}
1401#[test]
1402fn bindgen_test_layout_RNode__bindgen_ty_3() {
1403    assert_eq!(
1404        ::std::mem::size_of::<RNode__bindgen_ty_3>(),
1405        8usize,
1406        concat!("Size of: ", stringify!(RNode__bindgen_ty_3))
1407    );
1408    assert_eq!(
1409        ::std::mem::align_of::<RNode__bindgen_ty_3>(),
1410        8usize,
1411        concat!("Alignment of ", stringify!(RNode__bindgen_ty_3))
1412    );
1413    assert_eq!(
1414        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).node as *const _ as usize },
1415        0usize,
1416        concat!(
1417            "Offset of field: ",
1418            stringify!(RNode__bindgen_ty_3),
1419            "::",
1420            stringify!(node)
1421        )
1422    );
1423    assert_eq!(
1424        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).id as *const _ as usize },
1425        0usize,
1426        concat!(
1427            "Offset of field: ",
1428            stringify!(RNode__bindgen_ty_3),
1429            "::",
1430            stringify!(id)
1431        )
1432    );
1433    assert_eq!(
1434        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).state as *const _ as usize },
1435        0usize,
1436        concat!(
1437            "Offset of field: ",
1438            stringify!(RNode__bindgen_ty_3),
1439            "::",
1440            stringify!(state)
1441        )
1442    );
1443    assert_eq!(
1444        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).entry as *const _ as usize },
1445        0usize,
1446        concat!(
1447            "Offset of field: ",
1448            stringify!(RNode__bindgen_ty_3),
1449            "::",
1450            stringify!(entry)
1451        )
1452    );
1453    assert_eq!(
1454        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).cnt as *const _ as usize },
1455        0usize,
1456        concat!(
1457            "Offset of field: ",
1458            stringify!(RNode__bindgen_ty_3),
1459            "::",
1460            stringify!(cnt)
1461        )
1462    );
1463    assert_eq!(
1464        unsafe { &(*(::std::ptr::null::<RNode__bindgen_ty_3>())).value as *const _ as usize },
1465        0usize,
1466        concat!(
1467            "Offset of field: ",
1468            stringify!(RNode__bindgen_ty_3),
1469            "::",
1470            stringify!(value)
1471        )
1472    );
1473}
1474impl ::std::fmt::Debug for RNode__bindgen_ty_3 {
1475    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1476        write!(f, "RNode__bindgen_ty_3 {{ union }}")
1477    }
1478}
1479#[test]
1480fn bindgen_test_layout_RNode() {
1481    assert_eq!(
1482        ::std::mem::size_of::<RNode>(),
1483        40usize,
1484        concat!("Size of: ", stringify!(RNode))
1485    );
1486    assert_eq!(
1487        ::std::mem::align_of::<RNode>(),
1488        8usize,
1489        concat!("Alignment of ", stringify!(RNode))
1490    );
1491    assert_eq!(
1492        unsafe { &(*(::std::ptr::null::<RNode>())).flags as *const _ as usize },
1493        0usize,
1494        concat!(
1495            "Offset of field: ",
1496            stringify!(RNode),
1497            "::",
1498            stringify!(flags)
1499        )
1500    );
1501    assert_eq!(
1502        unsafe { &(*(::std::ptr::null::<RNode>())).nd_reserved as *const _ as usize },
1503        8usize,
1504        concat!(
1505            "Offset of field: ",
1506            stringify!(RNode),
1507            "::",
1508            stringify!(nd_reserved)
1509        )
1510    );
1511    assert_eq!(
1512        unsafe { &(*(::std::ptr::null::<RNode>())).u1 as *const _ as usize },
1513        16usize,
1514        concat!("Offset of field: ", stringify!(RNode), "::", stringify!(u1))
1515    );
1516    assert_eq!(
1517        unsafe { &(*(::std::ptr::null::<RNode>())).u2 as *const _ as usize },
1518        24usize,
1519        concat!("Offset of field: ", stringify!(RNode), "::", stringify!(u2))
1520    );
1521    assert_eq!(
1522        unsafe { &(*(::std::ptr::null::<RNode>())).u3 as *const _ as usize },
1523        32usize,
1524        concat!("Offset of field: ", stringify!(RNode), "::", stringify!(u3))
1525    );
1526}
1527impl ::std::fmt::Debug for RNode {
1528    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1529        write!(
1530            f,
1531            "RNode {{ flags: {:?}, nd_reserved: {:?}, u1: {:?}, u2: {:?}, u3: {:?} }}",
1532            self.flags, self.nd_reserved, self.u1, self.u2, self.u3
1533        )
1534    }
1535}
1536pub type NODE = RNode;
1537#[repr(C)]
1538#[derive(Debug, Copy, Clone)]
1539pub struct rb_global_entry {
1540    pub var: *mut rb_global_variable,
1541    pub id: ID,
1542}
1543#[test]
1544fn bindgen_test_layout_rb_global_entry() {
1545    assert_eq!(
1546        ::std::mem::size_of::<rb_global_entry>(),
1547        16usize,
1548        concat!("Size of: ", stringify!(rb_global_entry))
1549    );
1550    assert_eq!(
1551        ::std::mem::align_of::<rb_global_entry>(),
1552        8usize,
1553        concat!("Alignment of ", stringify!(rb_global_entry))
1554    );
1555    assert_eq!(
1556        unsafe { &(*(::std::ptr::null::<rb_global_entry>())).var as *const _ as usize },
1557        0usize,
1558        concat!(
1559            "Offset of field: ",
1560            stringify!(rb_global_entry),
1561            "::",
1562            stringify!(var)
1563        )
1564    );
1565    assert_eq!(
1566        unsafe { &(*(::std::ptr::null::<rb_global_entry>())).id as *const _ as usize },
1567        8usize,
1568        concat!(
1569            "Offset of field: ",
1570            stringify!(rb_global_entry),
1571            "::",
1572            stringify!(id)
1573        )
1574    );
1575}
1576pub const rb_method_flag_t_NOEX_PUBLIC: rb_method_flag_t = 0;
1577pub const rb_method_flag_t_NOEX_NOSUPER: rb_method_flag_t = 1;
1578pub const rb_method_flag_t_NOEX_PRIVATE: rb_method_flag_t = 2;
1579pub const rb_method_flag_t_NOEX_PROTECTED: rb_method_flag_t = 4;
1580pub const rb_method_flag_t_NOEX_MASK: rb_method_flag_t = 6;
1581pub const rb_method_flag_t_NOEX_BASIC: rb_method_flag_t = 8;
1582pub const rb_method_flag_t_NOEX_UNDEF: rb_method_flag_t = 1;
1583pub const rb_method_flag_t_NOEX_MODFUNC: rb_method_flag_t = 18;
1584pub const rb_method_flag_t_NOEX_SUPER: rb_method_flag_t = 32;
1585pub const rb_method_flag_t_NOEX_VCALL: rb_method_flag_t = 64;
1586pub const rb_method_flag_t_NOEX_RESPONDS: rb_method_flag_t = 128;
1587pub type rb_method_flag_t = ::std::os::raw::c_uint;
1588pub const rb_method_type_t_VM_METHOD_TYPE_ISEQ: rb_method_type_t = 0;
1589pub const rb_method_type_t_VM_METHOD_TYPE_CFUNC: rb_method_type_t = 1;
1590pub const rb_method_type_t_VM_METHOD_TYPE_ATTRSET: rb_method_type_t = 2;
1591pub const rb_method_type_t_VM_METHOD_TYPE_IVAR: rb_method_type_t = 3;
1592pub const rb_method_type_t_VM_METHOD_TYPE_BMETHOD: rb_method_type_t = 4;
1593pub const rb_method_type_t_VM_METHOD_TYPE_ZSUPER: rb_method_type_t = 5;
1594pub const rb_method_type_t_VM_METHOD_TYPE_UNDEF: rb_method_type_t = 6;
1595pub const rb_method_type_t_VM_METHOD_TYPE_NOTIMPLEMENTED: rb_method_type_t = 7;
1596pub const rb_method_type_t_VM_METHOD_TYPE_OPTIMIZED: rb_method_type_t = 8;
1597pub const rb_method_type_t_VM_METHOD_TYPE_MISSING: rb_method_type_t = 9;
1598pub type rb_method_type_t = ::std::os::raw::c_uint;
1599#[repr(C)]
1600#[derive(Debug, Copy, Clone)]
1601pub struct rb_method_cfunc_struct {
1602    pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1603    pub argc: ::std::os::raw::c_int,
1604}
1605#[test]
1606fn bindgen_test_layout_rb_method_cfunc_struct() {
1607    assert_eq!(
1608        ::std::mem::size_of::<rb_method_cfunc_struct>(),
1609        16usize,
1610        concat!("Size of: ", stringify!(rb_method_cfunc_struct))
1611    );
1612    assert_eq!(
1613        ::std::mem::align_of::<rb_method_cfunc_struct>(),
1614        8usize,
1615        concat!("Alignment of ", stringify!(rb_method_cfunc_struct))
1616    );
1617    assert_eq!(
1618        unsafe { &(*(::std::ptr::null::<rb_method_cfunc_struct>())).func as *const _ as usize },
1619        0usize,
1620        concat!(
1621            "Offset of field: ",
1622            stringify!(rb_method_cfunc_struct),
1623            "::",
1624            stringify!(func)
1625        )
1626    );
1627    assert_eq!(
1628        unsafe { &(*(::std::ptr::null::<rb_method_cfunc_struct>())).argc as *const _ as usize },
1629        8usize,
1630        concat!(
1631            "Offset of field: ",
1632            stringify!(rb_method_cfunc_struct),
1633            "::",
1634            stringify!(argc)
1635        )
1636    );
1637}
1638pub type rb_method_cfunc_t = rb_method_cfunc_struct;
1639#[repr(C)]
1640#[derive(Debug, Copy, Clone)]
1641pub struct rb_method_attr_struct {
1642    pub id: ID,
1643    pub location: VALUE,
1644}
1645#[test]
1646fn bindgen_test_layout_rb_method_attr_struct() {
1647    assert_eq!(
1648        ::std::mem::size_of::<rb_method_attr_struct>(),
1649        16usize,
1650        concat!("Size of: ", stringify!(rb_method_attr_struct))
1651    );
1652    assert_eq!(
1653        ::std::mem::align_of::<rb_method_attr_struct>(),
1654        8usize,
1655        concat!("Alignment of ", stringify!(rb_method_attr_struct))
1656    );
1657    assert_eq!(
1658        unsafe { &(*(::std::ptr::null::<rb_method_attr_struct>())).id as *const _ as usize },
1659        0usize,
1660        concat!(
1661            "Offset of field: ",
1662            stringify!(rb_method_attr_struct),
1663            "::",
1664            stringify!(id)
1665        )
1666    );
1667    assert_eq!(
1668        unsafe { &(*(::std::ptr::null::<rb_method_attr_struct>())).location as *const _ as usize },
1669        8usize,
1670        concat!(
1671            "Offset of field: ",
1672            stringify!(rb_method_attr_struct),
1673            "::",
1674            stringify!(location)
1675        )
1676    );
1677}
1678pub type rb_method_attr_t = rb_method_attr_struct;
1679pub type rb_iseq_t = rb_iseq_struct;
1680#[repr(C)]
1681#[derive(Copy, Clone)]
1682pub struct rb_method_definition_struct {
1683    pub type_: rb_method_type_t,
1684    pub original_id: ID,
1685    pub body: rb_method_definition_struct__bindgen_ty_1,
1686    pub alias_count: ::std::os::raw::c_int,
1687}
1688#[repr(C)]
1689#[derive(Copy, Clone)]
1690pub union rb_method_definition_struct__bindgen_ty_1 {
1691    pub iseq: *mut rb_iseq_t,
1692    pub cfunc: rb_method_cfunc_t,
1693    pub attr: rb_method_attr_t,
1694    pub proc_: VALUE,
1695    pub optimize_type: rb_method_definition_struct__bindgen_ty_1_method_optimized_type,
1696    _bindgen_union_align: [u64; 2usize],
1697}
1698pub 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 ;
1699pub 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 ;
1700pub type rb_method_definition_struct__bindgen_ty_1_method_optimized_type = ::std::os::raw::c_uint;
1701#[test]
1702fn bindgen_test_layout_rb_method_definition_struct__bindgen_ty_1() {
1703    assert_eq!(
1704        ::std::mem::size_of::<rb_method_definition_struct__bindgen_ty_1>(),
1705        16usize,
1706        concat!(
1707            "Size of: ",
1708            stringify!(rb_method_definition_struct__bindgen_ty_1)
1709        )
1710    );
1711    assert_eq!(
1712        ::std::mem::align_of::<rb_method_definition_struct__bindgen_ty_1>(),
1713        8usize,
1714        concat!(
1715            "Alignment of ",
1716            stringify!(rb_method_definition_struct__bindgen_ty_1)
1717        )
1718    );
1719    assert_eq!(
1720        unsafe {
1721            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).iseq as *const _
1722                as usize
1723        },
1724        0usize,
1725        concat!(
1726            "Offset of field: ",
1727            stringify!(rb_method_definition_struct__bindgen_ty_1),
1728            "::",
1729            stringify!(iseq)
1730        )
1731    );
1732    assert_eq!(
1733        unsafe {
1734            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).cfunc as *const _
1735                as usize
1736        },
1737        0usize,
1738        concat!(
1739            "Offset of field: ",
1740            stringify!(rb_method_definition_struct__bindgen_ty_1),
1741            "::",
1742            stringify!(cfunc)
1743        )
1744    );
1745    assert_eq!(
1746        unsafe {
1747            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).attr as *const _
1748                as usize
1749        },
1750        0usize,
1751        concat!(
1752            "Offset of field: ",
1753            stringify!(rb_method_definition_struct__bindgen_ty_1),
1754            "::",
1755            stringify!(attr)
1756        )
1757    );
1758    assert_eq!(
1759        unsafe {
1760            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).proc_ as *const _
1761                as usize
1762        },
1763        0usize,
1764        concat!(
1765            "Offset of field: ",
1766            stringify!(rb_method_definition_struct__bindgen_ty_1),
1767            "::",
1768            stringify!(proc_)
1769        )
1770    );
1771    assert_eq!(
1772        unsafe {
1773            &(*(::std::ptr::null::<rb_method_definition_struct__bindgen_ty_1>())).optimize_type
1774                as *const _ as usize
1775        },
1776        0usize,
1777        concat!(
1778            "Offset of field: ",
1779            stringify!(rb_method_definition_struct__bindgen_ty_1),
1780            "::",
1781            stringify!(optimize_type)
1782        )
1783    );
1784}
1785impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
1786    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1787        write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
1788    }
1789}
1790#[test]
1791fn bindgen_test_layout_rb_method_definition_struct() {
1792    assert_eq!(
1793        ::std::mem::size_of::<rb_method_definition_struct>(),
1794        40usize,
1795        concat!("Size of: ", stringify!(rb_method_definition_struct))
1796    );
1797    assert_eq!(
1798        ::std::mem::align_of::<rb_method_definition_struct>(),
1799        8usize,
1800        concat!("Alignment of ", stringify!(rb_method_definition_struct))
1801    );
1802    assert_eq!(
1803        unsafe {
1804            &(*(::std::ptr::null::<rb_method_definition_struct>())).type_ as *const _ as usize
1805        },
1806        0usize,
1807        concat!(
1808            "Offset of field: ",
1809            stringify!(rb_method_definition_struct),
1810            "::",
1811            stringify!(type_)
1812        )
1813    );
1814    assert_eq!(
1815        unsafe {
1816            &(*(::std::ptr::null::<rb_method_definition_struct>())).original_id as *const _ as usize
1817        },
1818        8usize,
1819        concat!(
1820            "Offset of field: ",
1821            stringify!(rb_method_definition_struct),
1822            "::",
1823            stringify!(original_id)
1824        )
1825    );
1826    assert_eq!(
1827        unsafe {
1828            &(*(::std::ptr::null::<rb_method_definition_struct>())).body as *const _ as usize
1829        },
1830        16usize,
1831        concat!(
1832            "Offset of field: ",
1833            stringify!(rb_method_definition_struct),
1834            "::",
1835            stringify!(body)
1836        )
1837    );
1838    assert_eq!(
1839        unsafe {
1840            &(*(::std::ptr::null::<rb_method_definition_struct>())).alias_count as *const _ as usize
1841        },
1842        32usize,
1843        concat!(
1844            "Offset of field: ",
1845            stringify!(rb_method_definition_struct),
1846            "::",
1847            stringify!(alias_count)
1848        )
1849    );
1850}
1851impl ::std::fmt::Debug for rb_method_definition_struct {
1852    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1853        write ! ( f , "rb_method_definition_struct {{ type: {:?}, original_id: {:?}, body: {:?}, alias_count: {:?} }}" , self . type_ , self . original_id , self . body , self . alias_count )
1854    }
1855}
1856pub type rb_method_definition_t = rb_method_definition_struct;
1857#[repr(C)]
1858#[derive(Debug, Copy, Clone)]
1859pub struct rb_method_entry_struct {
1860    pub flag: rb_method_flag_t,
1861    pub mark: ::std::os::raw::c_char,
1862    pub def: *mut rb_method_definition_t,
1863    pub called_id: ID,
1864    pub klass: VALUE,
1865}
1866#[test]
1867fn bindgen_test_layout_rb_method_entry_struct() {
1868    assert_eq!(
1869        ::std::mem::size_of::<rb_method_entry_struct>(),
1870        32usize,
1871        concat!("Size of: ", stringify!(rb_method_entry_struct))
1872    );
1873    assert_eq!(
1874        ::std::mem::align_of::<rb_method_entry_struct>(),
1875        8usize,
1876        concat!("Alignment of ", stringify!(rb_method_entry_struct))
1877    );
1878    assert_eq!(
1879        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).flag as *const _ as usize },
1880        0usize,
1881        concat!(
1882            "Offset of field: ",
1883            stringify!(rb_method_entry_struct),
1884            "::",
1885            stringify!(flag)
1886        )
1887    );
1888    assert_eq!(
1889        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).mark as *const _ as usize },
1890        4usize,
1891        concat!(
1892            "Offset of field: ",
1893            stringify!(rb_method_entry_struct),
1894            "::",
1895            stringify!(mark)
1896        )
1897    );
1898    assert_eq!(
1899        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).def as *const _ as usize },
1900        8usize,
1901        concat!(
1902            "Offset of field: ",
1903            stringify!(rb_method_entry_struct),
1904            "::",
1905            stringify!(def)
1906        )
1907    );
1908    assert_eq!(
1909        unsafe {
1910            &(*(::std::ptr::null::<rb_method_entry_struct>())).called_id as *const _ as usize
1911        },
1912        16usize,
1913        concat!(
1914            "Offset of field: ",
1915            stringify!(rb_method_entry_struct),
1916            "::",
1917            stringify!(called_id)
1918        )
1919    );
1920    assert_eq!(
1921        unsafe { &(*(::std::ptr::null::<rb_method_entry_struct>())).klass as *const _ as usize },
1922        24usize,
1923        concat!(
1924            "Offset of field: ",
1925            stringify!(rb_method_entry_struct),
1926            "::",
1927            stringify!(klass)
1928        )
1929    );
1930}
1931pub type rb_method_entry_t = rb_method_entry_struct;
1932#[repr(C)]
1933#[derive(Debug, Copy, Clone)]
1934pub struct unlinked_method_entry_list_entry {
1935    pub next: *mut unlinked_method_entry_list_entry,
1936    pub me: *mut rb_method_entry_t,
1937}
1938#[test]
1939fn bindgen_test_layout_unlinked_method_entry_list_entry() {
1940    assert_eq!(
1941        ::std::mem::size_of::<unlinked_method_entry_list_entry>(),
1942        16usize,
1943        concat!("Size of: ", stringify!(unlinked_method_entry_list_entry))
1944    );
1945    assert_eq!(
1946        ::std::mem::align_of::<unlinked_method_entry_list_entry>(),
1947        8usize,
1948        concat!(
1949            "Alignment of ",
1950            stringify!(unlinked_method_entry_list_entry)
1951        )
1952    );
1953    assert_eq!(
1954        unsafe {
1955            &(*(::std::ptr::null::<unlinked_method_entry_list_entry>())).next as *const _ as usize
1956        },
1957        0usize,
1958        concat!(
1959            "Offset of field: ",
1960            stringify!(unlinked_method_entry_list_entry),
1961            "::",
1962            stringify!(next)
1963        )
1964    );
1965    assert_eq!(
1966        unsafe {
1967            &(*(::std::ptr::null::<unlinked_method_entry_list_entry>())).me as *const _ as usize
1968        },
1969        8usize,
1970        concat!(
1971            "Offset of field: ",
1972            stringify!(unlinked_method_entry_list_entry),
1973            "::",
1974            stringify!(me)
1975        )
1976    );
1977}
1978pub type rb_atomic_t = ::std::os::raw::c_uint;
1979pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
1980pub type rb_thread_id_t = pthread_t;
1981pub type rb_thread_lock_t = pthread_mutex_t;
1982#[repr(C)]
1983#[derive(Copy, Clone)]
1984pub struct rb_thread_cond_struct {
1985    pub cond: pthread_cond_t,
1986    pub clockid: clockid_t,
1987}
1988#[test]
1989fn bindgen_test_layout_rb_thread_cond_struct() {
1990    assert_eq!(
1991        ::std::mem::size_of::<rb_thread_cond_struct>(),
1992        56usize,
1993        concat!("Size of: ", stringify!(rb_thread_cond_struct))
1994    );
1995    assert_eq!(
1996        ::std::mem::align_of::<rb_thread_cond_struct>(),
1997        8usize,
1998        concat!("Alignment of ", stringify!(rb_thread_cond_struct))
1999    );
2000    assert_eq!(
2001        unsafe { &(*(::std::ptr::null::<rb_thread_cond_struct>())).cond as *const _ as usize },
2002        0usize,
2003        concat!(
2004            "Offset of field: ",
2005            stringify!(rb_thread_cond_struct),
2006            "::",
2007            stringify!(cond)
2008        )
2009    );
2010    assert_eq!(
2011        unsafe { &(*(::std::ptr::null::<rb_thread_cond_struct>())).clockid as *const _ as usize },
2012        48usize,
2013        concat!(
2014            "Offset of field: ",
2015            stringify!(rb_thread_cond_struct),
2016            "::",
2017            stringify!(clockid)
2018        )
2019    );
2020}
2021impl ::std::fmt::Debug for rb_thread_cond_struct {
2022    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2023        write!(
2024            f,
2025            "rb_thread_cond_struct {{ cond: {:?}, clockid: {:?} }}",
2026            self.cond, self.clockid
2027        )
2028    }
2029}
2030pub type rb_thread_cond_t = rb_thread_cond_struct;
2031#[repr(C)]
2032#[derive(Copy, Clone)]
2033pub struct native_thread_data_struct {
2034    pub signal_thread_list: *mut ::std::os::raw::c_void,
2035    pub sleep_cond: rb_thread_cond_t,
2036}
2037#[test]
2038fn bindgen_test_layout_native_thread_data_struct() {
2039    assert_eq!(
2040        ::std::mem::size_of::<native_thread_data_struct>(),
2041        64usize,
2042        concat!("Size of: ", stringify!(native_thread_data_struct))
2043    );
2044    assert_eq!(
2045        ::std::mem::align_of::<native_thread_data_struct>(),
2046        8usize,
2047        concat!("Alignment of ", stringify!(native_thread_data_struct))
2048    );
2049    assert_eq!(
2050        unsafe {
2051            &(*(::std::ptr::null::<native_thread_data_struct>())).signal_thread_list as *const _
2052                as usize
2053        },
2054        0usize,
2055        concat!(
2056            "Offset of field: ",
2057            stringify!(native_thread_data_struct),
2058            "::",
2059            stringify!(signal_thread_list)
2060        )
2061    );
2062    assert_eq!(
2063        unsafe {
2064            &(*(::std::ptr::null::<native_thread_data_struct>())).sleep_cond as *const _ as usize
2065        },
2066        8usize,
2067        concat!(
2068            "Offset of field: ",
2069            stringify!(native_thread_data_struct),
2070            "::",
2071            stringify!(sleep_cond)
2072        )
2073    );
2074}
2075impl ::std::fmt::Debug for native_thread_data_struct {
2076    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2077        write!(
2078            f,
2079            "native_thread_data_struct {{ signal_thread_list: {:?}, sleep_cond: {:?} }}",
2080            self.signal_thread_list, self.sleep_cond
2081        )
2082    }
2083}
2084pub type native_thread_data_t = native_thread_data_struct;
2085#[repr(C)]
2086#[derive(Copy, Clone)]
2087pub struct rb_global_vm_lock_struct {
2088    pub acquired: ::std::os::raw::c_ulong,
2089    pub lock: pthread_mutex_t,
2090    pub waiting: ::std::os::raw::c_ulong,
2091    pub cond: rb_thread_cond_t,
2092    pub switch_cond: rb_thread_cond_t,
2093    pub switch_wait_cond: rb_thread_cond_t,
2094    pub need_yield: ::std::os::raw::c_int,
2095    pub wait_yield: ::std::os::raw::c_int,
2096}
2097#[test]
2098fn bindgen_test_layout_rb_global_vm_lock_struct() {
2099    assert_eq!(
2100        ::std::mem::size_of::<rb_global_vm_lock_struct>(),
2101        232usize,
2102        concat!("Size of: ", stringify!(rb_global_vm_lock_struct))
2103    );
2104    assert_eq!(
2105        ::std::mem::align_of::<rb_global_vm_lock_struct>(),
2106        8usize,
2107        concat!("Alignment of ", stringify!(rb_global_vm_lock_struct))
2108    );
2109    assert_eq!(
2110        unsafe {
2111            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).acquired as *const _ as usize
2112        },
2113        0usize,
2114        concat!(
2115            "Offset of field: ",
2116            stringify!(rb_global_vm_lock_struct),
2117            "::",
2118            stringify!(acquired)
2119        )
2120    );
2121    assert_eq!(
2122        unsafe { &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).lock as *const _ as usize },
2123        8usize,
2124        concat!(
2125            "Offset of field: ",
2126            stringify!(rb_global_vm_lock_struct),
2127            "::",
2128            stringify!(lock)
2129        )
2130    );
2131    assert_eq!(
2132        unsafe {
2133            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).waiting as *const _ as usize
2134        },
2135        48usize,
2136        concat!(
2137            "Offset of field: ",
2138            stringify!(rb_global_vm_lock_struct),
2139            "::",
2140            stringify!(waiting)
2141        )
2142    );
2143    assert_eq!(
2144        unsafe { &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).cond as *const _ as usize },
2145        56usize,
2146        concat!(
2147            "Offset of field: ",
2148            stringify!(rb_global_vm_lock_struct),
2149            "::",
2150            stringify!(cond)
2151        )
2152    );
2153    assert_eq!(
2154        unsafe {
2155            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).switch_cond as *const _ as usize
2156        },
2157        112usize,
2158        concat!(
2159            "Offset of field: ",
2160            stringify!(rb_global_vm_lock_struct),
2161            "::",
2162            stringify!(switch_cond)
2163        )
2164    );
2165    assert_eq!(
2166        unsafe {
2167            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).switch_wait_cond as *const _
2168                as usize
2169        },
2170        168usize,
2171        concat!(
2172            "Offset of field: ",
2173            stringify!(rb_global_vm_lock_struct),
2174            "::",
2175            stringify!(switch_wait_cond)
2176        )
2177    );
2178    assert_eq!(
2179        unsafe {
2180            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).need_yield as *const _ as usize
2181        },
2182        224usize,
2183        concat!(
2184            "Offset of field: ",
2185            stringify!(rb_global_vm_lock_struct),
2186            "::",
2187            stringify!(need_yield)
2188        )
2189    );
2190    assert_eq!(
2191        unsafe {
2192            &(*(::std::ptr::null::<rb_global_vm_lock_struct>())).wait_yield as *const _ as usize
2193        },
2194        228usize,
2195        concat!(
2196            "Offset of field: ",
2197            stringify!(rb_global_vm_lock_struct),
2198            "::",
2199            stringify!(wait_yield)
2200        )
2201    );
2202}
2203impl ::std::fmt::Debug for rb_global_vm_lock_struct {
2204    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2205        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 )
2206    }
2207}
2208pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
2209#[repr(C)]
2210#[derive(Debug, Copy, Clone)]
2211pub struct __jmp_buf_tag {
2212    pub __jmpbuf: __jmp_buf,
2213    pub __mask_was_saved: ::std::os::raw::c_int,
2214    pub __saved_mask: __sigset_t,
2215}
2216#[test]
2217fn bindgen_test_layout___jmp_buf_tag() {
2218    assert_eq!(
2219        ::std::mem::size_of::<__jmp_buf_tag>(),
2220        200usize,
2221        concat!("Size of: ", stringify!(__jmp_buf_tag))
2222    );
2223    assert_eq!(
2224        ::std::mem::align_of::<__jmp_buf_tag>(),
2225        8usize,
2226        concat!("Alignment of ", stringify!(__jmp_buf_tag))
2227    );
2228    assert_eq!(
2229        unsafe { &(*(::std::ptr::null::<__jmp_buf_tag>())).__jmpbuf as *const _ as usize },
2230        0usize,
2231        concat!(
2232            "Offset of field: ",
2233            stringify!(__jmp_buf_tag),
2234            "::",
2235            stringify!(__jmpbuf)
2236        )
2237    );
2238    assert_eq!(
2239        unsafe { &(*(::std::ptr::null::<__jmp_buf_tag>())).__mask_was_saved as *const _ as usize },
2240        64usize,
2241        concat!(
2242            "Offset of field: ",
2243            stringify!(__jmp_buf_tag),
2244            "::",
2245            stringify!(__mask_was_saved)
2246        )
2247    );
2248    assert_eq!(
2249        unsafe { &(*(::std::ptr::null::<__jmp_buf_tag>())).__saved_mask as *const _ as usize },
2250        72usize,
2251        concat!(
2252            "Offset of field: ",
2253            stringify!(__jmp_buf_tag),
2254            "::",
2255            stringify!(__saved_mask)
2256        )
2257    );
2258}
2259pub type jmp_buf = [__jmp_buf_tag; 1usize];
2260#[repr(C)]
2261#[derive(Debug, Copy, Clone)]
2262pub struct iseq_compile_data_ensure_node_stack {
2263    _unused: [u8; 0],
2264}
2265pub type rb_compile_option_t = rb_compile_option_struct;
2266#[repr(C)]
2267#[derive(Copy, Clone)]
2268pub struct iseq_inline_cache_entry {
2269    pub ic_vmstat: VALUE,
2270    pub ic_class: VALUE,
2271    pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
2272}
2273#[repr(C)]
2274#[derive(Copy, Clone)]
2275pub union iseq_inline_cache_entry__bindgen_ty_1 {
2276    pub value: VALUE,
2277    pub method: *mut rb_method_entry_t,
2278    pub index: ::std::os::raw::c_long,
2279    _bindgen_union_align: u64,
2280}
2281#[test]
2282fn bindgen_test_layout_iseq_inline_cache_entry__bindgen_ty_1() {
2283    assert_eq!(
2284        ::std::mem::size_of::<iseq_inline_cache_entry__bindgen_ty_1>(),
2285        8usize,
2286        concat!(
2287            "Size of: ",
2288            stringify!(iseq_inline_cache_entry__bindgen_ty_1)
2289        )
2290    );
2291    assert_eq!(
2292        ::std::mem::align_of::<iseq_inline_cache_entry__bindgen_ty_1>(),
2293        8usize,
2294        concat!(
2295            "Alignment of ",
2296            stringify!(iseq_inline_cache_entry__bindgen_ty_1)
2297        )
2298    );
2299    assert_eq!(
2300        unsafe {
2301            &(*(::std::ptr::null::<iseq_inline_cache_entry__bindgen_ty_1>())).value as *const _
2302                as usize
2303        },
2304        0usize,
2305        concat!(
2306            "Offset of field: ",
2307            stringify!(iseq_inline_cache_entry__bindgen_ty_1),
2308            "::",
2309            stringify!(value)
2310        )
2311    );
2312    assert_eq!(
2313        unsafe {
2314            &(*(::std::ptr::null::<iseq_inline_cache_entry__bindgen_ty_1>())).method as *const _
2315                as usize
2316        },
2317        0usize,
2318        concat!(
2319            "Offset of field: ",
2320            stringify!(iseq_inline_cache_entry__bindgen_ty_1),
2321            "::",
2322            stringify!(method)
2323        )
2324    );
2325    assert_eq!(
2326        unsafe {
2327            &(*(::std::ptr::null::<iseq_inline_cache_entry__bindgen_ty_1>())).index as *const _
2328                as usize
2329        },
2330        0usize,
2331        concat!(
2332            "Offset of field: ",
2333            stringify!(iseq_inline_cache_entry__bindgen_ty_1),
2334            "::",
2335            stringify!(index)
2336        )
2337    );
2338}
2339impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
2340    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2341        write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
2342    }
2343}
2344#[test]
2345fn bindgen_test_layout_iseq_inline_cache_entry() {
2346    assert_eq!(
2347        ::std::mem::size_of::<iseq_inline_cache_entry>(),
2348        24usize,
2349        concat!("Size of: ", stringify!(iseq_inline_cache_entry))
2350    );
2351    assert_eq!(
2352        ::std::mem::align_of::<iseq_inline_cache_entry>(),
2353        8usize,
2354        concat!("Alignment of ", stringify!(iseq_inline_cache_entry))
2355    );
2356    assert_eq!(
2357        unsafe {
2358            &(*(::std::ptr::null::<iseq_inline_cache_entry>())).ic_vmstat as *const _ as usize
2359        },
2360        0usize,
2361        concat!(
2362            "Offset of field: ",
2363            stringify!(iseq_inline_cache_entry),
2364            "::",
2365            stringify!(ic_vmstat)
2366        )
2367    );
2368    assert_eq!(
2369        unsafe {
2370            &(*(::std::ptr::null::<iseq_inline_cache_entry>())).ic_class as *const _ as usize
2371        },
2372        8usize,
2373        concat!(
2374            "Offset of field: ",
2375            stringify!(iseq_inline_cache_entry),
2376            "::",
2377            stringify!(ic_class)
2378        )
2379    );
2380    assert_eq!(
2381        unsafe {
2382            &(*(::std::ptr::null::<iseq_inline_cache_entry>())).ic_value as *const _ as usize
2383        },
2384        16usize,
2385        concat!(
2386            "Offset of field: ",
2387            stringify!(iseq_inline_cache_entry),
2388            "::",
2389            stringify!(ic_value)
2390        )
2391    );
2392}
2393impl ::std::fmt::Debug for iseq_inline_cache_entry {
2394    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2395        write!(
2396            f,
2397            "iseq_inline_cache_entry {{ ic_vmstat: {:?}, ic_class: {:?}, ic_value: {:?} }}",
2398            self.ic_vmstat, self.ic_class, self.ic_value
2399        )
2400    }
2401}
2402#[repr(C)]
2403#[derive(Debug, Copy, Clone)]
2404pub struct rb_iseq_struct {
2405    pub type_: rb_iseq_struct_iseq_type,
2406    pub name: VALUE,
2407    pub filename: VALUE,
2408    pub filepath: VALUE,
2409    pub iseq: *mut VALUE,
2410    pub iseq_encoded: *mut VALUE,
2411    pub iseq_size: ::std::os::raw::c_ulong,
2412    pub mark_ary: VALUE,
2413    pub coverage: VALUE,
2414    pub line_no: ::std::os::raw::c_ushort,
2415    pub insn_info_table: *mut iseq_insn_info_entry,
2416    pub insn_info_size: usize,
2417    pub local_table: *mut ID,
2418    pub local_table_size: ::std::os::raw::c_int,
2419    pub local_size: ::std::os::raw::c_int,
2420    pub ic_entries: *mut iseq_inline_cache_entry,
2421    pub ic_size: ::std::os::raw::c_int,
2422    pub argc: ::std::os::raw::c_int,
2423    pub arg_simple: ::std::os::raw::c_int,
2424    pub arg_rest: ::std::os::raw::c_int,
2425    pub arg_block: ::std::os::raw::c_int,
2426    pub arg_opts: ::std::os::raw::c_int,
2427    pub arg_post_len: ::std::os::raw::c_int,
2428    pub arg_post_start: ::std::os::raw::c_int,
2429    pub arg_size: ::std::os::raw::c_int,
2430    pub arg_opt_table: *mut VALUE,
2431    pub stack_max: usize,
2432    pub catch_table: *mut iseq_catch_table_entry,
2433    pub catch_table_size: ::std::os::raw::c_int,
2434    pub parent_iseq: *mut rb_iseq_struct,
2435    pub local_iseq: *mut rb_iseq_struct,
2436    pub self_: VALUE,
2437    pub orig: VALUE,
2438    pub cref_stack: *mut NODE,
2439    pub klass: VALUE,
2440    pub defined_method_id: ID,
2441    pub compile_data: *mut iseq_compile_data,
2442}
2443pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_TOP: rb_iseq_struct_iseq_type = 0;
2444pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_struct_iseq_type = 1;
2445pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_struct_iseq_type = 2;
2446pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_struct_iseq_type = 3;
2447pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_struct_iseq_type = 4;
2448pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_struct_iseq_type = 5;
2449pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_struct_iseq_type = 6;
2450pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_struct_iseq_type = 7;
2451pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_DEFINED_GUARD: rb_iseq_struct_iseq_type = 8;
2452pub type rb_iseq_struct_iseq_type = ::std::os::raw::c_uint;
2453#[test]
2454fn bindgen_test_layout_rb_iseq_struct() {
2455    assert_eq!(
2456        ::std::mem::size_of::<rb_iseq_struct>(),
2457        256usize,
2458        concat!("Size of: ", stringify!(rb_iseq_struct))
2459    );
2460    assert_eq!(
2461        ::std::mem::align_of::<rb_iseq_struct>(),
2462        8usize,
2463        concat!("Alignment of ", stringify!(rb_iseq_struct))
2464    );
2465    assert_eq!(
2466        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).type_ as *const _ as usize },
2467        0usize,
2468        concat!(
2469            "Offset of field: ",
2470            stringify!(rb_iseq_struct),
2471            "::",
2472            stringify!(type_)
2473        )
2474    );
2475    assert_eq!(
2476        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).name as *const _ as usize },
2477        8usize,
2478        concat!(
2479            "Offset of field: ",
2480            stringify!(rb_iseq_struct),
2481            "::",
2482            stringify!(name)
2483        )
2484    );
2485    assert_eq!(
2486        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).filename as *const _ as usize },
2487        16usize,
2488        concat!(
2489            "Offset of field: ",
2490            stringify!(rb_iseq_struct),
2491            "::",
2492            stringify!(filename)
2493        )
2494    );
2495    assert_eq!(
2496        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).filepath as *const _ as usize },
2497        24usize,
2498        concat!(
2499            "Offset of field: ",
2500            stringify!(rb_iseq_struct),
2501            "::",
2502            stringify!(filepath)
2503        )
2504    );
2505    assert_eq!(
2506        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).iseq as *const _ as usize },
2507        32usize,
2508        concat!(
2509            "Offset of field: ",
2510            stringify!(rb_iseq_struct),
2511            "::",
2512            stringify!(iseq)
2513        )
2514    );
2515    assert_eq!(
2516        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).iseq_encoded as *const _ as usize },
2517        40usize,
2518        concat!(
2519            "Offset of field: ",
2520            stringify!(rb_iseq_struct),
2521            "::",
2522            stringify!(iseq_encoded)
2523        )
2524    );
2525    assert_eq!(
2526        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).iseq_size as *const _ as usize },
2527        48usize,
2528        concat!(
2529            "Offset of field: ",
2530            stringify!(rb_iseq_struct),
2531            "::",
2532            stringify!(iseq_size)
2533        )
2534    );
2535    assert_eq!(
2536        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).mark_ary as *const _ as usize },
2537        56usize,
2538        concat!(
2539            "Offset of field: ",
2540            stringify!(rb_iseq_struct),
2541            "::",
2542            stringify!(mark_ary)
2543        )
2544    );
2545    assert_eq!(
2546        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).coverage as *const _ as usize },
2547        64usize,
2548        concat!(
2549            "Offset of field: ",
2550            stringify!(rb_iseq_struct),
2551            "::",
2552            stringify!(coverage)
2553        )
2554    );
2555    assert_eq!(
2556        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).line_no as *const _ as usize },
2557        72usize,
2558        concat!(
2559            "Offset of field: ",
2560            stringify!(rb_iseq_struct),
2561            "::",
2562            stringify!(line_no)
2563        )
2564    );
2565    assert_eq!(
2566        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).insn_info_table as *const _ as usize },
2567        80usize,
2568        concat!(
2569            "Offset of field: ",
2570            stringify!(rb_iseq_struct),
2571            "::",
2572            stringify!(insn_info_table)
2573        )
2574    );
2575    assert_eq!(
2576        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).insn_info_size as *const _ as usize },
2577        88usize,
2578        concat!(
2579            "Offset of field: ",
2580            stringify!(rb_iseq_struct),
2581            "::",
2582            stringify!(insn_info_size)
2583        )
2584    );
2585    assert_eq!(
2586        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_table as *const _ as usize },
2587        96usize,
2588        concat!(
2589            "Offset of field: ",
2590            stringify!(rb_iseq_struct),
2591            "::",
2592            stringify!(local_table)
2593        )
2594    );
2595    assert_eq!(
2596        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_table_size as *const _ as usize },
2597        104usize,
2598        concat!(
2599            "Offset of field: ",
2600            stringify!(rb_iseq_struct),
2601            "::",
2602            stringify!(local_table_size)
2603        )
2604    );
2605    assert_eq!(
2606        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_size as *const _ as usize },
2607        108usize,
2608        concat!(
2609            "Offset of field: ",
2610            stringify!(rb_iseq_struct),
2611            "::",
2612            stringify!(local_size)
2613        )
2614    );
2615    assert_eq!(
2616        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).ic_entries as *const _ as usize },
2617        112usize,
2618        concat!(
2619            "Offset of field: ",
2620            stringify!(rb_iseq_struct),
2621            "::",
2622            stringify!(ic_entries)
2623        )
2624    );
2625    assert_eq!(
2626        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).ic_size as *const _ as usize },
2627        120usize,
2628        concat!(
2629            "Offset of field: ",
2630            stringify!(rb_iseq_struct),
2631            "::",
2632            stringify!(ic_size)
2633        )
2634    );
2635    assert_eq!(
2636        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).argc as *const _ as usize },
2637        124usize,
2638        concat!(
2639            "Offset of field: ",
2640            stringify!(rb_iseq_struct),
2641            "::",
2642            stringify!(argc)
2643        )
2644    );
2645    assert_eq!(
2646        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_simple as *const _ as usize },
2647        128usize,
2648        concat!(
2649            "Offset of field: ",
2650            stringify!(rb_iseq_struct),
2651            "::",
2652            stringify!(arg_simple)
2653        )
2654    );
2655    assert_eq!(
2656        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_rest as *const _ as usize },
2657        132usize,
2658        concat!(
2659            "Offset of field: ",
2660            stringify!(rb_iseq_struct),
2661            "::",
2662            stringify!(arg_rest)
2663        )
2664    );
2665    assert_eq!(
2666        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_block as *const _ as usize },
2667        136usize,
2668        concat!(
2669            "Offset of field: ",
2670            stringify!(rb_iseq_struct),
2671            "::",
2672            stringify!(arg_block)
2673        )
2674    );
2675    assert_eq!(
2676        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_opts as *const _ as usize },
2677        140usize,
2678        concat!(
2679            "Offset of field: ",
2680            stringify!(rb_iseq_struct),
2681            "::",
2682            stringify!(arg_opts)
2683        )
2684    );
2685    assert_eq!(
2686        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_post_len as *const _ as usize },
2687        144usize,
2688        concat!(
2689            "Offset of field: ",
2690            stringify!(rb_iseq_struct),
2691            "::",
2692            stringify!(arg_post_len)
2693        )
2694    );
2695    assert_eq!(
2696        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_post_start as *const _ as usize },
2697        148usize,
2698        concat!(
2699            "Offset of field: ",
2700            stringify!(rb_iseq_struct),
2701            "::",
2702            stringify!(arg_post_start)
2703        )
2704    );
2705    assert_eq!(
2706        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_size as *const _ as usize },
2707        152usize,
2708        concat!(
2709            "Offset of field: ",
2710            stringify!(rb_iseq_struct),
2711            "::",
2712            stringify!(arg_size)
2713        )
2714    );
2715    assert_eq!(
2716        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).arg_opt_table as *const _ as usize },
2717        160usize,
2718        concat!(
2719            "Offset of field: ",
2720            stringify!(rb_iseq_struct),
2721            "::",
2722            stringify!(arg_opt_table)
2723        )
2724    );
2725    assert_eq!(
2726        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).stack_max as *const _ as usize },
2727        168usize,
2728        concat!(
2729            "Offset of field: ",
2730            stringify!(rb_iseq_struct),
2731            "::",
2732            stringify!(stack_max)
2733        )
2734    );
2735    assert_eq!(
2736        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).catch_table as *const _ as usize },
2737        176usize,
2738        concat!(
2739            "Offset of field: ",
2740            stringify!(rb_iseq_struct),
2741            "::",
2742            stringify!(catch_table)
2743        )
2744    );
2745    assert_eq!(
2746        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).catch_table_size as *const _ as usize },
2747        184usize,
2748        concat!(
2749            "Offset of field: ",
2750            stringify!(rb_iseq_struct),
2751            "::",
2752            stringify!(catch_table_size)
2753        )
2754    );
2755    assert_eq!(
2756        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).parent_iseq as *const _ as usize },
2757        192usize,
2758        concat!(
2759            "Offset of field: ",
2760            stringify!(rb_iseq_struct),
2761            "::",
2762            stringify!(parent_iseq)
2763        )
2764    );
2765    assert_eq!(
2766        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).local_iseq as *const _ as usize },
2767        200usize,
2768        concat!(
2769            "Offset of field: ",
2770            stringify!(rb_iseq_struct),
2771            "::",
2772            stringify!(local_iseq)
2773        )
2774    );
2775    assert_eq!(
2776        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).self_ as *const _ as usize },
2777        208usize,
2778        concat!(
2779            "Offset of field: ",
2780            stringify!(rb_iseq_struct),
2781            "::",
2782            stringify!(self_)
2783        )
2784    );
2785    assert_eq!(
2786        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).orig as *const _ as usize },
2787        216usize,
2788        concat!(
2789            "Offset of field: ",
2790            stringify!(rb_iseq_struct),
2791            "::",
2792            stringify!(orig)
2793        )
2794    );
2795    assert_eq!(
2796        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).cref_stack as *const _ as usize },
2797        224usize,
2798        concat!(
2799            "Offset of field: ",
2800            stringify!(rb_iseq_struct),
2801            "::",
2802            stringify!(cref_stack)
2803        )
2804    );
2805    assert_eq!(
2806        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).klass as *const _ as usize },
2807        232usize,
2808        concat!(
2809            "Offset of field: ",
2810            stringify!(rb_iseq_struct),
2811            "::",
2812            stringify!(klass)
2813        )
2814    );
2815    assert_eq!(
2816        unsafe {
2817            &(*(::std::ptr::null::<rb_iseq_struct>())).defined_method_id as *const _ as usize
2818        },
2819        240usize,
2820        concat!(
2821            "Offset of field: ",
2822            stringify!(rb_iseq_struct),
2823            "::",
2824            stringify!(defined_method_id)
2825        )
2826    );
2827    assert_eq!(
2828        unsafe { &(*(::std::ptr::null::<rb_iseq_struct>())).compile_data as *const _ as usize },
2829        248usize,
2830        concat!(
2831            "Offset of field: ",
2832            stringify!(rb_iseq_struct),
2833            "::",
2834            stringify!(compile_data)
2835        )
2836    );
2837}
2838#[repr(C)]
2839#[derive(Debug, Copy, Clone)]
2840pub struct rb_objspace {
2841    _unused: [u8; 0],
2842}
2843#[repr(C)]
2844#[derive(Copy, Clone)]
2845pub struct rb_vm_struct {
2846    pub self_: VALUE,
2847    pub gvl: rb_global_vm_lock_t,
2848    pub main_thread: *mut rb_thread_struct,
2849    pub running_thread: *mut rb_thread_struct,
2850    pub living_threads: *mut st_table,
2851    pub thgroup_default: VALUE,
2852    pub running: ::std::os::raw::c_int,
2853    pub inhibit_thread_creation: ::std::os::raw::c_int,
2854    pub thread_abort_on_exception: ::std::os::raw::c_int,
2855    pub trace_flag: ::std::os::raw::c_ulong,
2856    pub sleeper: ::std::os::raw::c_int,
2857    pub mark_object_ary: VALUE,
2858    pub special_exceptions: [VALUE; 4usize],
2859    pub top_self: VALUE,
2860    pub load_path: VALUE,
2861    pub loaded_features: VALUE,
2862    pub loading_table: *mut st_table,
2863    pub trap_list: [rb_vm_struct__bindgen_ty_1; 65usize],
2864    pub event_hooks: *mut rb_event_hook_t,
2865    pub src_encoding_index: ::std::os::raw::c_int,
2866    pub verbose: VALUE,
2867    pub debug: VALUE,
2868    pub progname: VALUE,
2869    pub coverages: VALUE,
2870    pub unlinked_method_entry_list: *mut unlinked_method_entry_list_entry,
2871    pub objspace: *mut rb_objspace,
2872    pub at_exit: RArray,
2873}
2874#[repr(C)]
2875#[derive(Debug, Copy, Clone)]
2876pub struct rb_vm_struct__bindgen_ty_1 {
2877    pub cmd: VALUE,
2878    pub safe: ::std::os::raw::c_int,
2879}
2880#[test]
2881fn bindgen_test_layout_rb_vm_struct__bindgen_ty_1() {
2882    assert_eq!(
2883        ::std::mem::size_of::<rb_vm_struct__bindgen_ty_1>(),
2884        16usize,
2885        concat!("Size of: ", stringify!(rb_vm_struct__bindgen_ty_1))
2886    );
2887    assert_eq!(
2888        ::std::mem::align_of::<rb_vm_struct__bindgen_ty_1>(),
2889        8usize,
2890        concat!("Alignment of ", stringify!(rb_vm_struct__bindgen_ty_1))
2891    );
2892    assert_eq!(
2893        unsafe { &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_1>())).cmd as *const _ as usize },
2894        0usize,
2895        concat!(
2896            "Offset of field: ",
2897            stringify!(rb_vm_struct__bindgen_ty_1),
2898            "::",
2899            stringify!(cmd)
2900        )
2901    );
2902    assert_eq!(
2903        unsafe { &(*(::std::ptr::null::<rb_vm_struct__bindgen_ty_1>())).safe as *const _ as usize },
2904        8usize,
2905        concat!(
2906            "Offset of field: ",
2907            stringify!(rb_vm_struct__bindgen_ty_1),
2908            "::",
2909            stringify!(safe)
2910        )
2911    );
2912}
2913#[test]
2914fn bindgen_test_layout_rb_vm_struct() {
2915    assert_eq!(
2916        ::std::mem::size_of::<rb_vm_struct>(),
2917        1520usize,
2918        concat!("Size of: ", stringify!(rb_vm_struct))
2919    );
2920    assert_eq!(
2921        ::std::mem::align_of::<rb_vm_struct>(),
2922        8usize,
2923        concat!("Alignment of ", stringify!(rb_vm_struct))
2924    );
2925    assert_eq!(
2926        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).self_ as *const _ as usize },
2927        0usize,
2928        concat!(
2929            "Offset of field: ",
2930            stringify!(rb_vm_struct),
2931            "::",
2932            stringify!(self_)
2933        )
2934    );
2935    assert_eq!(
2936        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).gvl as *const _ as usize },
2937        8usize,
2938        concat!(
2939            "Offset of field: ",
2940            stringify!(rb_vm_struct),
2941            "::",
2942            stringify!(gvl)
2943        )
2944    );
2945    assert_eq!(
2946        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).main_thread as *const _ as usize },
2947        240usize,
2948        concat!(
2949            "Offset of field: ",
2950            stringify!(rb_vm_struct),
2951            "::",
2952            stringify!(main_thread)
2953        )
2954    );
2955    assert_eq!(
2956        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).running_thread as *const _ as usize },
2957        248usize,
2958        concat!(
2959            "Offset of field: ",
2960            stringify!(rb_vm_struct),
2961            "::",
2962            stringify!(running_thread)
2963        )
2964    );
2965    assert_eq!(
2966        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).living_threads as *const _ as usize },
2967        256usize,
2968        concat!(
2969            "Offset of field: ",
2970            stringify!(rb_vm_struct),
2971            "::",
2972            stringify!(living_threads)
2973        )
2974    );
2975    assert_eq!(
2976        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).thgroup_default as *const _ as usize },
2977        264usize,
2978        concat!(
2979            "Offset of field: ",
2980            stringify!(rb_vm_struct),
2981            "::",
2982            stringify!(thgroup_default)
2983        )
2984    );
2985    assert_eq!(
2986        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).running as *const _ as usize },
2987        272usize,
2988        concat!(
2989            "Offset of field: ",
2990            stringify!(rb_vm_struct),
2991            "::",
2992            stringify!(running)
2993        )
2994    );
2995    assert_eq!(
2996        unsafe {
2997            &(*(::std::ptr::null::<rb_vm_struct>())).inhibit_thread_creation as *const _ as usize
2998        },
2999        276usize,
3000        concat!(
3001            "Offset of field: ",
3002            stringify!(rb_vm_struct),
3003            "::",
3004            stringify!(inhibit_thread_creation)
3005        )
3006    );
3007    assert_eq!(
3008        unsafe {
3009            &(*(::std::ptr::null::<rb_vm_struct>())).thread_abort_on_exception as *const _ as usize
3010        },
3011        280usize,
3012        concat!(
3013            "Offset of field: ",
3014            stringify!(rb_vm_struct),
3015            "::",
3016            stringify!(thread_abort_on_exception)
3017        )
3018    );
3019    assert_eq!(
3020        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).trace_flag as *const _ as usize },
3021        288usize,
3022        concat!(
3023            "Offset of field: ",
3024            stringify!(rb_vm_struct),
3025            "::",
3026            stringify!(trace_flag)
3027        )
3028    );
3029    assert_eq!(
3030        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).sleeper as *const _ as usize },
3031        296usize,
3032        concat!(
3033            "Offset of field: ",
3034            stringify!(rb_vm_struct),
3035            "::",
3036            stringify!(sleeper)
3037        )
3038    );
3039    assert_eq!(
3040        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).mark_object_ary as *const _ as usize },
3041        304usize,
3042        concat!(
3043            "Offset of field: ",
3044            stringify!(rb_vm_struct),
3045            "::",
3046            stringify!(mark_object_ary)
3047        )
3048    );
3049    assert_eq!(
3050        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).special_exceptions as *const _ as usize },
3051        312usize,
3052        concat!(
3053            "Offset of field: ",
3054            stringify!(rb_vm_struct),
3055            "::",
3056            stringify!(special_exceptions)
3057        )
3058    );
3059    assert_eq!(
3060        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).top_self as *const _ as usize },
3061        344usize,
3062        concat!(
3063            "Offset of field: ",
3064            stringify!(rb_vm_struct),
3065            "::",
3066            stringify!(top_self)
3067        )
3068    );
3069    assert_eq!(
3070        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).load_path as *const _ as usize },
3071        352usize,
3072        concat!(
3073            "Offset of field: ",
3074            stringify!(rb_vm_struct),
3075            "::",
3076            stringify!(load_path)
3077        )
3078    );
3079    assert_eq!(
3080        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).loaded_features as *const _ as usize },
3081        360usize,
3082        concat!(
3083            "Offset of field: ",
3084            stringify!(rb_vm_struct),
3085            "::",
3086            stringify!(loaded_features)
3087        )
3088    );
3089    assert_eq!(
3090        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).loading_table as *const _ as usize },
3091        368usize,
3092        concat!(
3093            "Offset of field: ",
3094            stringify!(rb_vm_struct),
3095            "::",
3096            stringify!(loading_table)
3097        )
3098    );
3099    assert_eq!(
3100        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).trap_list as *const _ as usize },
3101        376usize,
3102        concat!(
3103            "Offset of field: ",
3104            stringify!(rb_vm_struct),
3105            "::",
3106            stringify!(trap_list)
3107        )
3108    );
3109    assert_eq!(
3110        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).event_hooks as *const _ as usize },
3111        1416usize,
3112        concat!(
3113            "Offset of field: ",
3114            stringify!(rb_vm_struct),
3115            "::",
3116            stringify!(event_hooks)
3117        )
3118    );
3119    assert_eq!(
3120        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).src_encoding_index as *const _ as usize },
3121        1424usize,
3122        concat!(
3123            "Offset of field: ",
3124            stringify!(rb_vm_struct),
3125            "::",
3126            stringify!(src_encoding_index)
3127        )
3128    );
3129    assert_eq!(
3130        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).verbose as *const _ as usize },
3131        1432usize,
3132        concat!(
3133            "Offset of field: ",
3134            stringify!(rb_vm_struct),
3135            "::",
3136            stringify!(verbose)
3137        )
3138    );
3139    assert_eq!(
3140        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).debug as *const _ as usize },
3141        1440usize,
3142        concat!(
3143            "Offset of field: ",
3144            stringify!(rb_vm_struct),
3145            "::",
3146            stringify!(debug)
3147        )
3148    );
3149    assert_eq!(
3150        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).progname as *const _ as usize },
3151        1448usize,
3152        concat!(
3153            "Offset of field: ",
3154            stringify!(rb_vm_struct),
3155            "::",
3156            stringify!(progname)
3157        )
3158    );
3159    assert_eq!(
3160        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).coverages as *const _ as usize },
3161        1456usize,
3162        concat!(
3163            "Offset of field: ",
3164            stringify!(rb_vm_struct),
3165            "::",
3166            stringify!(coverages)
3167        )
3168    );
3169    assert_eq!(
3170        unsafe {
3171            &(*(::std::ptr::null::<rb_vm_struct>())).unlinked_method_entry_list as *const _ as usize
3172        },
3173        1464usize,
3174        concat!(
3175            "Offset of field: ",
3176            stringify!(rb_vm_struct),
3177            "::",
3178            stringify!(unlinked_method_entry_list)
3179        )
3180    );
3181    assert_eq!(
3182        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).objspace as *const _ as usize },
3183        1472usize,
3184        concat!(
3185            "Offset of field: ",
3186            stringify!(rb_vm_struct),
3187            "::",
3188            stringify!(objspace)
3189        )
3190    );
3191    assert_eq!(
3192        unsafe { &(*(::std::ptr::null::<rb_vm_struct>())).at_exit as *const _ as usize },
3193        1480usize,
3194        concat!(
3195            "Offset of field: ",
3196            stringify!(rb_vm_struct),
3197            "::",
3198            stringify!(at_exit)
3199        )
3200    );
3201}
3202impl ::std::fmt::Debug for rb_vm_struct {
3203    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3204        write ! ( f , "rb_vm_struct {{ self: {:?}, gvl: {:?}, main_thread: {:?}, running_thread: {:?}, living_threads: {:?}, thgroup_default: {:?}, running: {:?}, inhibit_thread_creation: {:?}, thread_abort_on_exception: {:?}, trace_flag: {:?}, sleeper: {:?}, mark_object_ary: {:?}, special_exceptions: {:?}, top_self: {:?}, load_path: {:?}, loaded_features: {:?}, loading_table: {:?}, trap_list: [{}], event_hooks: {:?}, src_encoding_index: {:?}, verbose: {:?}, debug: {:?}, progname: {:?}, coverages: {:?}, unlinked_method_entry_list: {:?}, objspace: {:?}, at_exit: {:?} }}" , self . self_ , self . gvl , self . main_thread , self . running_thread , self . living_threads , self . thgroup_default , self . running , self . inhibit_thread_creation , self . thread_abort_on_exception , self . trace_flag , self . sleeper , self . mark_object_ary , self . special_exceptions , self . top_self , self . load_path , self . loaded_features , 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 )
3205    }
3206}
3207pub type rb_vm_t = rb_vm_struct;
3208#[repr(C)]
3209#[derive(Debug, Copy, Clone)]
3210pub struct rb_control_frame_t {
3211    pub pc: *mut VALUE,
3212    pub sp: *mut VALUE,
3213    pub bp: *mut VALUE,
3214    pub iseq: *mut rb_iseq_t,
3215    pub flag: VALUE,
3216    pub self_: VALUE,
3217    pub lfp: *mut VALUE,
3218    pub dfp: *mut VALUE,
3219    pub block_iseq: *mut rb_iseq_t,
3220    pub proc_: VALUE,
3221    pub me: *const rb_method_entry_t,
3222}
3223#[test]
3224fn bindgen_test_layout_rb_control_frame_t() {
3225    assert_eq!(
3226        ::std::mem::size_of::<rb_control_frame_t>(),
3227        88usize,
3228        concat!("Size of: ", stringify!(rb_control_frame_t))
3229    );
3230    assert_eq!(
3231        ::std::mem::align_of::<rb_control_frame_t>(),
3232        8usize,
3233        concat!("Alignment of ", stringify!(rb_control_frame_t))
3234    );
3235    assert_eq!(
3236        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).pc as *const _ as usize },
3237        0usize,
3238        concat!(
3239            "Offset of field: ",
3240            stringify!(rb_control_frame_t),
3241            "::",
3242            stringify!(pc)
3243        )
3244    );
3245    assert_eq!(
3246        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).sp as *const _ as usize },
3247        8usize,
3248        concat!(
3249            "Offset of field: ",
3250            stringify!(rb_control_frame_t),
3251            "::",
3252            stringify!(sp)
3253        )
3254    );
3255    assert_eq!(
3256        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).bp as *const _ as usize },
3257        16usize,
3258        concat!(
3259            "Offset of field: ",
3260            stringify!(rb_control_frame_t),
3261            "::",
3262            stringify!(bp)
3263        )
3264    );
3265    assert_eq!(
3266        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).iseq as *const _ as usize },
3267        24usize,
3268        concat!(
3269            "Offset of field: ",
3270            stringify!(rb_control_frame_t),
3271            "::",
3272            stringify!(iseq)
3273        )
3274    );
3275    assert_eq!(
3276        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).flag as *const _ as usize },
3277        32usize,
3278        concat!(
3279            "Offset of field: ",
3280            stringify!(rb_control_frame_t),
3281            "::",
3282            stringify!(flag)
3283        )
3284    );
3285    assert_eq!(
3286        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).self_ as *const _ as usize },
3287        40usize,
3288        concat!(
3289            "Offset of field: ",
3290            stringify!(rb_control_frame_t),
3291            "::",
3292            stringify!(self_)
3293        )
3294    );
3295    assert_eq!(
3296        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).lfp as *const _ as usize },
3297        48usize,
3298        concat!(
3299            "Offset of field: ",
3300            stringify!(rb_control_frame_t),
3301            "::",
3302            stringify!(lfp)
3303        )
3304    );
3305    assert_eq!(
3306        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).dfp as *const _ as usize },
3307        56usize,
3308        concat!(
3309            "Offset of field: ",
3310            stringify!(rb_control_frame_t),
3311            "::",
3312            stringify!(dfp)
3313        )
3314    );
3315    assert_eq!(
3316        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).block_iseq as *const _ as usize },
3317        64usize,
3318        concat!(
3319            "Offset of field: ",
3320            stringify!(rb_control_frame_t),
3321            "::",
3322            stringify!(block_iseq)
3323        )
3324    );
3325    assert_eq!(
3326        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).proc_ as *const _ as usize },
3327        72usize,
3328        concat!(
3329            "Offset of field: ",
3330            stringify!(rb_control_frame_t),
3331            "::",
3332            stringify!(proc_)
3333        )
3334    );
3335    assert_eq!(
3336        unsafe { &(*(::std::ptr::null::<rb_control_frame_t>())).me as *const _ as usize },
3337        80usize,
3338        concat!(
3339            "Offset of field: ",
3340            stringify!(rb_control_frame_t),
3341            "::",
3342            stringify!(me)
3343        )
3344    );
3345}
3346#[repr(C)]
3347#[derive(Debug, Copy, Clone)]
3348pub struct rb_block_struct {
3349    pub self_: VALUE,
3350    pub lfp: *mut VALUE,
3351    pub dfp: *mut VALUE,
3352    pub iseq: *mut rb_iseq_t,
3353    pub proc_: VALUE,
3354}
3355#[test]
3356fn bindgen_test_layout_rb_block_struct() {
3357    assert_eq!(
3358        ::std::mem::size_of::<rb_block_struct>(),
3359        40usize,
3360        concat!("Size of: ", stringify!(rb_block_struct))
3361    );
3362    assert_eq!(
3363        ::std::mem::align_of::<rb_block_struct>(),
3364        8usize,
3365        concat!("Alignment of ", stringify!(rb_block_struct))
3366    );
3367    assert_eq!(
3368        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).self_ as *const _ as usize },
3369        0usize,
3370        concat!(
3371            "Offset of field: ",
3372            stringify!(rb_block_struct),
3373            "::",
3374            stringify!(self_)
3375        )
3376    );
3377    assert_eq!(
3378        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).lfp as *const _ as usize },
3379        8usize,
3380        concat!(
3381            "Offset of field: ",
3382            stringify!(rb_block_struct),
3383            "::",
3384            stringify!(lfp)
3385        )
3386    );
3387    assert_eq!(
3388        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).dfp as *const _ as usize },
3389        16usize,
3390        concat!(
3391            "Offset of field: ",
3392            stringify!(rb_block_struct),
3393            "::",
3394            stringify!(dfp)
3395        )
3396    );
3397    assert_eq!(
3398        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).iseq as *const _ as usize },
3399        24usize,
3400        concat!(
3401            "Offset of field: ",
3402            stringify!(rb_block_struct),
3403            "::",
3404            stringify!(iseq)
3405        )
3406    );
3407    assert_eq!(
3408        unsafe { &(*(::std::ptr::null::<rb_block_struct>())).proc_ as *const _ as usize },
3409        32usize,
3410        concat!(
3411            "Offset of field: ",
3412            stringify!(rb_block_struct),
3413            "::",
3414            stringify!(proc_)
3415        )
3416    );
3417}
3418pub type rb_block_t = rb_block_struct;
3419pub const rb_thread_status_THREAD_TO_KILL: rb_thread_status = 0;
3420pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 1;
3421pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 2;
3422pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 3;
3423pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 4;
3424pub type rb_thread_status = ::std::os::raw::c_uint;
3425pub type rb_jmpbuf_t = jmp_buf;
3426#[repr(C)]
3427#[derive(Debug, Copy, Clone)]
3428pub struct rb_vm_tag {
3429    pub buf: rb_jmpbuf_t,
3430    pub tag: VALUE,
3431    pub retval: VALUE,
3432    pub prev: *mut rb_vm_tag,
3433}
3434#[test]
3435fn bindgen_test_layout_rb_vm_tag() {
3436    assert_eq!(
3437        ::std::mem::size_of::<rb_vm_tag>(),
3438        224usize,
3439        concat!("Size of: ", stringify!(rb_vm_tag))
3440    );
3441    assert_eq!(
3442        ::std::mem::align_of::<rb_vm_tag>(),
3443        8usize,
3444        concat!("Alignment of ", stringify!(rb_vm_tag))
3445    );
3446    assert_eq!(
3447        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).buf as *const _ as usize },
3448        0usize,
3449        concat!(
3450            "Offset of field: ",
3451            stringify!(rb_vm_tag),
3452            "::",
3453            stringify!(buf)
3454        )
3455    );
3456    assert_eq!(
3457        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).tag as *const _ as usize },
3458        200usize,
3459        concat!(
3460            "Offset of field: ",
3461            stringify!(rb_vm_tag),
3462            "::",
3463            stringify!(tag)
3464        )
3465    );
3466    assert_eq!(
3467        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).retval as *const _ as usize },
3468        208usize,
3469        concat!(
3470            "Offset of field: ",
3471            stringify!(rb_vm_tag),
3472            "::",
3473            stringify!(retval)
3474        )
3475    );
3476    assert_eq!(
3477        unsafe { &(*(::std::ptr::null::<rb_vm_tag>())).prev as *const _ as usize },
3478        216usize,
3479        concat!(
3480            "Offset of field: ",
3481            stringify!(rb_vm_tag),
3482            "::",
3483            stringify!(prev)
3484        )
3485    );
3486}
3487#[repr(C)]
3488#[derive(Debug, Copy, Clone)]
3489pub struct rb_vm_protect_tag {
3490    pub prev: *mut rb_vm_protect_tag,
3491}
3492#[test]
3493fn bindgen_test_layout_rb_vm_protect_tag() {
3494    assert_eq!(
3495        ::std::mem::size_of::<rb_vm_protect_tag>(),
3496        8usize,
3497        concat!("Size of: ", stringify!(rb_vm_protect_tag))
3498    );
3499    assert_eq!(
3500        ::std::mem::align_of::<rb_vm_protect_tag>(),
3501        8usize,
3502        concat!("Alignment of ", stringify!(rb_vm_protect_tag))
3503    );
3504    assert_eq!(
3505        unsafe { &(*(::std::ptr::null::<rb_vm_protect_tag>())).prev as *const _ as usize },
3506        0usize,
3507        concat!(
3508            "Offset of field: ",
3509            stringify!(rb_vm_protect_tag),
3510            "::",
3511            stringify!(prev)
3512        )
3513    );
3514}
3515#[repr(C)]
3516#[derive(Debug, Copy, Clone)]
3517pub struct rb_unblock_callback {
3518    pub func: rb_unblock_function_t,
3519    pub arg: *mut ::std::os::raw::c_void,
3520}
3521#[test]
3522fn bindgen_test_layout_rb_unblock_callback() {
3523    assert_eq!(
3524        ::std::mem::size_of::<rb_unblock_callback>(),
3525        16usize,
3526        concat!("Size of: ", stringify!(rb_unblock_callback))
3527    );
3528    assert_eq!(
3529        ::std::mem::align_of::<rb_unblock_callback>(),
3530        8usize,
3531        concat!("Alignment of ", stringify!(rb_unblock_callback))
3532    );
3533    assert_eq!(
3534        unsafe { &(*(::std::ptr::null::<rb_unblock_callback>())).func as *const _ as usize },
3535        0usize,
3536        concat!(
3537            "Offset of field: ",
3538            stringify!(rb_unblock_callback),
3539            "::",
3540            stringify!(func)
3541        )
3542    );
3543    assert_eq!(
3544        unsafe { &(*(::std::ptr::null::<rb_unblock_callback>())).arg as *const _ as usize },
3545        8usize,
3546        concat!(
3547            "Offset of field: ",
3548            stringify!(rb_unblock_callback),
3549            "::",
3550            stringify!(arg)
3551        )
3552    );
3553}
3554#[repr(C)]
3555#[derive(Debug, Copy, Clone)]
3556pub struct rb_mutex_struct {
3557    _unused: [u8; 0],
3558}
3559#[repr(C)]
3560#[derive(Copy, Clone)]
3561pub struct rb_thread_struct {
3562    pub self_: VALUE,
3563    pub vm: *mut rb_vm_t,
3564    pub stack: *mut VALUE,
3565    pub stack_size: ::std::os::raw::c_ulong,
3566    pub cfp: *mut rb_control_frame_t,
3567    pub safe_level: ::std::os::raw::c_int,
3568    pub raised_flag: ::std::os::raw::c_int,
3569    pub last_status: VALUE,
3570    pub state: ::std::os::raw::c_int,
3571    pub waiting_fd: ::std::os::raw::c_int,
3572    pub passed_block: *const rb_block_t,
3573    pub passed_me: *const rb_method_entry_t,
3574    pub top_self: VALUE,
3575    pub top_wrapper: VALUE,
3576    pub base_block: *mut rb_block_t,
3577    pub local_lfp: *mut VALUE,
3578    pub local_svar: VALUE,
3579    pub thread_id: rb_thread_id_t,
3580    pub status: rb_thread_status,
3581    pub priority: ::std::os::raw::c_int,
3582    pub native_thread_data: native_thread_data_t,
3583    pub blocking_region_buffer: *mut ::std::os::raw::c_void,
3584    pub thgroup: VALUE,
3585    pub value: VALUE,
3586    pub errinfo: VALUE,
3587    pub thrown_errinfo: VALUE,
3588    pub interrupt_flag: rb_atomic_t,
3589    pub interrupt_lock: rb_thread_lock_t,
3590    pub unblock: rb_unblock_callback,
3591    pub locking_mutex: VALUE,
3592    pub keeping_mutexes: *mut rb_mutex_struct,
3593    pub tag: *mut rb_vm_tag,
3594    pub protect_tag: *mut rb_vm_protect_tag,
3595    pub parse_in_eval: ::std::os::raw::c_int,
3596    pub mild_compile_error: ::std::os::raw::c_int,
3597    pub local_storage: *mut st_table,
3598    pub join_list_next: *mut rb_thread_struct,
3599    pub join_list_head: *mut rb_thread_struct,
3600    pub first_proc: VALUE,
3601    pub first_args: VALUE,
3602    pub first_func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
3603    pub machine_stack_start: *mut VALUE,
3604    pub machine_stack_end: *mut VALUE,
3605    pub machine_stack_maxsize: usize,
3606    pub machine_regs: jmp_buf,
3607    pub mark_stack_len: ::std::os::raw::c_int,
3608    pub stat_insn_usage: VALUE,
3609    pub event_hooks: *mut rb_event_hook_t,
3610    pub event_flags: rb_event_flag_t,
3611    pub tracing: ::std::os::raw::c_int,
3612    pub fiber: VALUE,
3613    pub root_fiber: VALUE,
3614    pub root_jmpbuf: rb_jmpbuf_t,
3615    pub method_missing_reason: ::std::os::raw::c_int,
3616    pub abort_on_exception: ::std::os::raw::c_int,
3617    pub altstack: *mut ::std::os::raw::c_void,
3618    pub running_time_us: ::std::os::raw::c_ulong,
3619}
3620#[test]
3621fn bindgen_test_layout_rb_thread_struct() {
3622    assert_eq!(
3623        ::std::mem::size_of::<rb_thread_struct>(),
3624        888usize,
3625        concat!("Size of: ", stringify!(rb_thread_struct))
3626    );
3627    assert_eq!(
3628        ::std::mem::align_of::<rb_thread_struct>(),
3629        8usize,
3630        concat!("Alignment of ", stringify!(rb_thread_struct))
3631    );
3632    assert_eq!(
3633        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).self_ as *const _ as usize },
3634        0usize,
3635        concat!(
3636            "Offset of field: ",
3637            stringify!(rb_thread_struct),
3638            "::",
3639            stringify!(self_)
3640        )
3641    );
3642    assert_eq!(
3643        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).vm as *const _ as usize },
3644        8usize,
3645        concat!(
3646            "Offset of field: ",
3647            stringify!(rb_thread_struct),
3648            "::",
3649            stringify!(vm)
3650        )
3651    );
3652    assert_eq!(
3653        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).stack as *const _ as usize },
3654        16usize,
3655        concat!(
3656            "Offset of field: ",
3657            stringify!(rb_thread_struct),
3658            "::",
3659            stringify!(stack)
3660        )
3661    );
3662    assert_eq!(
3663        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).stack_size as *const _ as usize },
3664        24usize,
3665        concat!(
3666            "Offset of field: ",
3667            stringify!(rb_thread_struct),
3668            "::",
3669            stringify!(stack_size)
3670        )
3671    );
3672    assert_eq!(
3673        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).cfp as *const _ as usize },
3674        32usize,
3675        concat!(
3676            "Offset of field: ",
3677            stringify!(rb_thread_struct),
3678            "::",
3679            stringify!(cfp)
3680        )
3681    );
3682    assert_eq!(
3683        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).safe_level as *const _ as usize },
3684        40usize,
3685        concat!(
3686            "Offset of field: ",
3687            stringify!(rb_thread_struct),
3688            "::",
3689            stringify!(safe_level)
3690        )
3691    );
3692    assert_eq!(
3693        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).raised_flag as *const _ as usize },
3694        44usize,
3695        concat!(
3696            "Offset of field: ",
3697            stringify!(rb_thread_struct),
3698            "::",
3699            stringify!(raised_flag)
3700        )
3701    );
3702    assert_eq!(
3703        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).last_status as *const _ as usize },
3704        48usize,
3705        concat!(
3706            "Offset of field: ",
3707            stringify!(rb_thread_struct),
3708            "::",
3709            stringify!(last_status)
3710        )
3711    );
3712    assert_eq!(
3713        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).state as *const _ as usize },
3714        56usize,
3715        concat!(
3716            "Offset of field: ",
3717            stringify!(rb_thread_struct),
3718            "::",
3719            stringify!(state)
3720        )
3721    );
3722    assert_eq!(
3723        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).waiting_fd as *const _ as usize },
3724        60usize,
3725        concat!(
3726            "Offset of field: ",
3727            stringify!(rb_thread_struct),
3728            "::",
3729            stringify!(waiting_fd)
3730        )
3731    );
3732    assert_eq!(
3733        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).passed_block as *const _ as usize },
3734        64usize,
3735        concat!(
3736            "Offset of field: ",
3737            stringify!(rb_thread_struct),
3738            "::",
3739            stringify!(passed_block)
3740        )
3741    );
3742    assert_eq!(
3743        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).passed_me as *const _ as usize },
3744        72usize,
3745        concat!(
3746            "Offset of field: ",
3747            stringify!(rb_thread_struct),
3748            "::",
3749            stringify!(passed_me)
3750        )
3751    );
3752    assert_eq!(
3753        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).top_self as *const _ as usize },
3754        80usize,
3755        concat!(
3756            "Offset of field: ",
3757            stringify!(rb_thread_struct),
3758            "::",
3759            stringify!(top_self)
3760        )
3761    );
3762    assert_eq!(
3763        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).top_wrapper as *const _ as usize },
3764        88usize,
3765        concat!(
3766            "Offset of field: ",
3767            stringify!(rb_thread_struct),
3768            "::",
3769            stringify!(top_wrapper)
3770        )
3771    );
3772    assert_eq!(
3773        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).base_block as *const _ as usize },
3774        96usize,
3775        concat!(
3776            "Offset of field: ",
3777            stringify!(rb_thread_struct),
3778            "::",
3779            stringify!(base_block)
3780        )
3781    );
3782    assert_eq!(
3783        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).local_lfp as *const _ as usize },
3784        104usize,
3785        concat!(
3786            "Offset of field: ",
3787            stringify!(rb_thread_struct),
3788            "::",
3789            stringify!(local_lfp)
3790        )
3791    );
3792    assert_eq!(
3793        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).local_svar as *const _ as usize },
3794        112usize,
3795        concat!(
3796            "Offset of field: ",
3797            stringify!(rb_thread_struct),
3798            "::",
3799            stringify!(local_svar)
3800        )
3801    );
3802    assert_eq!(
3803        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).thread_id as *const _ as usize },
3804        120usize,
3805        concat!(
3806            "Offset of field: ",
3807            stringify!(rb_thread_struct),
3808            "::",
3809            stringify!(thread_id)
3810        )
3811    );
3812    assert_eq!(
3813        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).status as *const _ as usize },
3814        128usize,
3815        concat!(
3816            "Offset of field: ",
3817            stringify!(rb_thread_struct),
3818            "::",
3819            stringify!(status)
3820        )
3821    );
3822    assert_eq!(
3823        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).priority as *const _ as usize },
3824        132usize,
3825        concat!(
3826            "Offset of field: ",
3827            stringify!(rb_thread_struct),
3828            "::",
3829            stringify!(priority)
3830        )
3831    );
3832    assert_eq!(
3833        unsafe {
3834            &(*(::std::ptr::null::<rb_thread_struct>())).native_thread_data as *const _ as usize
3835        },
3836        136usize,
3837        concat!(
3838            "Offset of field: ",
3839            stringify!(rb_thread_struct),
3840            "::",
3841            stringify!(native_thread_data)
3842        )
3843    );
3844    assert_eq!(
3845        unsafe {
3846            &(*(::std::ptr::null::<rb_thread_struct>())).blocking_region_buffer as *const _ as usize
3847        },
3848        200usize,
3849        concat!(
3850            "Offset of field: ",
3851            stringify!(rb_thread_struct),
3852            "::",
3853            stringify!(blocking_region_buffer)
3854        )
3855    );
3856    assert_eq!(
3857        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).thgroup as *const _ as usize },
3858        208usize,
3859        concat!(
3860            "Offset of field: ",
3861            stringify!(rb_thread_struct),
3862            "::",
3863            stringify!(thgroup)
3864        )
3865    );
3866    assert_eq!(
3867        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).value as *const _ as usize },
3868        216usize,
3869        concat!(
3870            "Offset of field: ",
3871            stringify!(rb_thread_struct),
3872            "::",
3873            stringify!(value)
3874        )
3875    );
3876    assert_eq!(
3877        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).errinfo as *const _ as usize },
3878        224usize,
3879        concat!(
3880            "Offset of field: ",
3881            stringify!(rb_thread_struct),
3882            "::",
3883            stringify!(errinfo)
3884        )
3885    );
3886    assert_eq!(
3887        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).thrown_errinfo as *const _ as usize },
3888        232usize,
3889        concat!(
3890            "Offset of field: ",
3891            stringify!(rb_thread_struct),
3892            "::",
3893            stringify!(thrown_errinfo)
3894        )
3895    );
3896    assert_eq!(
3897        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).interrupt_flag as *const _ as usize },
3898        240usize,
3899        concat!(
3900            "Offset of field: ",
3901            stringify!(rb_thread_struct),
3902            "::",
3903            stringify!(interrupt_flag)
3904        )
3905    );
3906    assert_eq!(
3907        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).interrupt_lock as *const _ as usize },
3908        248usize,
3909        concat!(
3910            "Offset of field: ",
3911            stringify!(rb_thread_struct),
3912            "::",
3913            stringify!(interrupt_lock)
3914        )
3915    );
3916    assert_eq!(
3917        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).unblock as *const _ as usize },
3918        288usize,
3919        concat!(
3920            "Offset of field: ",
3921            stringify!(rb_thread_struct),
3922            "::",
3923            stringify!(unblock)
3924        )
3925    );
3926    assert_eq!(
3927        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).locking_mutex as *const _ as usize },
3928        304usize,
3929        concat!(
3930            "Offset of field: ",
3931            stringify!(rb_thread_struct),
3932            "::",
3933            stringify!(locking_mutex)
3934        )
3935    );
3936    assert_eq!(
3937        unsafe {
3938            &(*(::std::ptr::null::<rb_thread_struct>())).keeping_mutexes as *const _ as usize
3939        },
3940        312usize,
3941        concat!(
3942            "Offset of field: ",
3943            stringify!(rb_thread_struct),
3944            "::",
3945            stringify!(keeping_mutexes)
3946        )
3947    );
3948    assert_eq!(
3949        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).tag as *const _ as usize },
3950        320usize,
3951        concat!(
3952            "Offset of field: ",
3953            stringify!(rb_thread_struct),
3954            "::",
3955            stringify!(tag)
3956        )
3957    );
3958    assert_eq!(
3959        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).protect_tag as *const _ as usize },
3960        328usize,
3961        concat!(
3962            "Offset of field: ",
3963            stringify!(rb_thread_struct),
3964            "::",
3965            stringify!(protect_tag)
3966        )
3967    );
3968    assert_eq!(
3969        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).parse_in_eval as *const _ as usize },
3970        336usize,
3971        concat!(
3972            "Offset of field: ",
3973            stringify!(rb_thread_struct),
3974            "::",
3975            stringify!(parse_in_eval)
3976        )
3977    );
3978    assert_eq!(
3979        unsafe {
3980            &(*(::std::ptr::null::<rb_thread_struct>())).mild_compile_error as *const _ as usize
3981        },
3982        340usize,
3983        concat!(
3984            "Offset of field: ",
3985            stringify!(rb_thread_struct),
3986            "::",
3987            stringify!(mild_compile_error)
3988        )
3989    );
3990    assert_eq!(
3991        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).local_storage as *const _ as usize },
3992        344usize,
3993        concat!(
3994            "Offset of field: ",
3995            stringify!(rb_thread_struct),
3996            "::",
3997            stringify!(local_storage)
3998        )
3999    );
4000    assert_eq!(
4001        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).join_list_next as *const _ as usize },
4002        352usize,
4003        concat!(
4004            "Offset of field: ",
4005            stringify!(rb_thread_struct),
4006            "::",
4007            stringify!(join_list_next)
4008        )
4009    );
4010    assert_eq!(
4011        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).join_list_head as *const _ as usize },
4012        360usize,
4013        concat!(
4014            "Offset of field: ",
4015            stringify!(rb_thread_struct),
4016            "::",
4017            stringify!(join_list_head)
4018        )
4019    );
4020    assert_eq!(
4021        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).first_proc as *const _ as usize },
4022        368usize,
4023        concat!(
4024            "Offset of field: ",
4025            stringify!(rb_thread_struct),
4026            "::",
4027            stringify!(first_proc)
4028        )
4029    );
4030    assert_eq!(
4031        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).first_args as *const _ as usize },
4032        376usize,
4033        concat!(
4034            "Offset of field: ",
4035            stringify!(rb_thread_struct),
4036            "::",
4037            stringify!(first_args)
4038        )
4039    );
4040    assert_eq!(
4041        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).first_func as *const _ as usize },
4042        384usize,
4043        concat!(
4044            "Offset of field: ",
4045            stringify!(rb_thread_struct),
4046            "::",
4047            stringify!(first_func)
4048        )
4049    );
4050    assert_eq!(
4051        unsafe {
4052            &(*(::std::ptr::null::<rb_thread_struct>())).machine_stack_start as *const _ as usize
4053        },
4054        392usize,
4055        concat!(
4056            "Offset of field: ",
4057            stringify!(rb_thread_struct),
4058            "::",
4059            stringify!(machine_stack_start)
4060        )
4061    );
4062    assert_eq!(
4063        unsafe {
4064            &(*(::std::ptr::null::<rb_thread_struct>())).machine_stack_end as *const _ as usize
4065        },
4066        400usize,
4067        concat!(
4068            "Offset of field: ",
4069            stringify!(rb_thread_struct),
4070            "::",
4071            stringify!(machine_stack_end)
4072        )
4073    );
4074    assert_eq!(
4075        unsafe {
4076            &(*(::std::ptr::null::<rb_thread_struct>())).machine_stack_maxsize as *const _ as usize
4077        },
4078        408usize,
4079        concat!(
4080            "Offset of field: ",
4081            stringify!(rb_thread_struct),
4082            "::",
4083            stringify!(machine_stack_maxsize)
4084        )
4085    );
4086    assert_eq!(
4087        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).machine_regs as *const _ as usize },
4088        416usize,
4089        concat!(
4090            "Offset of field: ",
4091            stringify!(rb_thread_struct),
4092            "::",
4093            stringify!(machine_regs)
4094        )
4095    );
4096    assert_eq!(
4097        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).mark_stack_len as *const _ as usize },
4098        616usize,
4099        concat!(
4100            "Offset of field: ",
4101            stringify!(rb_thread_struct),
4102            "::",
4103            stringify!(mark_stack_len)
4104        )
4105    );
4106    assert_eq!(
4107        unsafe {
4108            &(*(::std::ptr::null::<rb_thread_struct>())).stat_insn_usage as *const _ as usize
4109        },
4110        624usize,
4111        concat!(
4112            "Offset of field: ",
4113            stringify!(rb_thread_struct),
4114            "::",
4115            stringify!(stat_insn_usage)
4116        )
4117    );
4118    assert_eq!(
4119        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).event_hooks as *const _ as usize },
4120        632usize,
4121        concat!(
4122            "Offset of field: ",
4123            stringify!(rb_thread_struct),
4124            "::",
4125            stringify!(event_hooks)
4126        )
4127    );
4128    assert_eq!(
4129        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).event_flags as *const _ as usize },
4130        640usize,
4131        concat!(
4132            "Offset of field: ",
4133            stringify!(rb_thread_struct),
4134            "::",
4135            stringify!(event_flags)
4136        )
4137    );
4138    assert_eq!(
4139        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).tracing as *const _ as usize },
4140        644usize,
4141        concat!(
4142            "Offset of field: ",
4143            stringify!(rb_thread_struct),
4144            "::",
4145            stringify!(tracing)
4146        )
4147    );
4148    assert_eq!(
4149        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).fiber as *const _ as usize },
4150        648usize,
4151        concat!(
4152            "Offset of field: ",
4153            stringify!(rb_thread_struct),
4154            "::",
4155            stringify!(fiber)
4156        )
4157    );
4158    assert_eq!(
4159        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).root_fiber as *const _ as usize },
4160        656usize,
4161        concat!(
4162            "Offset of field: ",
4163            stringify!(rb_thread_struct),
4164            "::",
4165            stringify!(root_fiber)
4166        )
4167    );
4168    assert_eq!(
4169        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).root_jmpbuf as *const _ as usize },
4170        664usize,
4171        concat!(
4172            "Offset of field: ",
4173            stringify!(rb_thread_struct),
4174            "::",
4175            stringify!(root_jmpbuf)
4176        )
4177    );
4178    assert_eq!(
4179        unsafe {
4180            &(*(::std::ptr::null::<rb_thread_struct>())).method_missing_reason as *const _ as usize
4181        },
4182        864usize,
4183        concat!(
4184            "Offset of field: ",
4185            stringify!(rb_thread_struct),
4186            "::",
4187            stringify!(method_missing_reason)
4188        )
4189    );
4190    assert_eq!(
4191        unsafe {
4192            &(*(::std::ptr::null::<rb_thread_struct>())).abort_on_exception as *const _ as usize
4193        },
4194        868usize,
4195        concat!(
4196            "Offset of field: ",
4197            stringify!(rb_thread_struct),
4198            "::",
4199            stringify!(abort_on_exception)
4200        )
4201    );
4202    assert_eq!(
4203        unsafe { &(*(::std::ptr::null::<rb_thread_struct>())).altstack as *const _ as usize },
4204        872usize,
4205        concat!(
4206            "Offset of field: ",
4207            stringify!(rb_thread_struct),
4208            "::",
4209            stringify!(altstack)
4210        )
4211    );
4212    assert_eq!(
4213        unsafe {
4214            &(*(::std::ptr::null::<rb_thread_struct>())).running_time_us as *const _ as usize
4215        },
4216        880usize,
4217        concat!(
4218            "Offset of field: ",
4219            stringify!(rb_thread_struct),
4220            "::",
4221            stringify!(running_time_us)
4222        )
4223    );
4224}
4225impl ::std::fmt::Debug for rb_thread_struct {
4226    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
4227        write ! ( f , "rb_thread_struct {{ self: {:?}, vm: {:?}, stack: {:?}, stack_size: {:?}, cfp: {:?}, safe_level: {:?}, raised_flag: {:?}, last_status: {:?}, state: {:?}, waiting_fd: {:?}, passed_block: {:?}, passed_me: {:?}, top_self: {:?}, top_wrapper: {:?}, base_block: {:?}, local_lfp: {:?}, local_svar: {:?}, thread_id: {:?}, status: {:?}, priority: {:?}, native_thread_data: {:?}, blocking_region_buffer: {:?}, thgroup: {:?}, value: {:?}, errinfo: {:?}, thrown_errinfo: {:?}, interrupt_flag: {:?}, interrupt_lock: {:?}, unblock: {:?}, locking_mutex: {:?}, keeping_mutexes: {:?}, tag: {:?}, protect_tag: {:?}, parse_in_eval: {:?}, mild_compile_error: {:?}, local_storage: {:?}, join_list_next: {:?}, join_list_head: {:?}, 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: {:?}, event_flags: {:?}, tracing: {:?}, 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 . top_self , self . top_wrapper , self . base_block , self . local_lfp , self . local_svar , self . thread_id , self . status , self . priority , self . native_thread_data , self . blocking_region_buffer , self . thgroup , self . value , self . errinfo , self . thrown_errinfo , self . interrupt_flag , 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_next , self . join_list_head , 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 . event_flags , self . tracing , self . fiber , self . root_fiber , self . root_jmpbuf , self . method_missing_reason , self . abort_on_exception , self . altstack , self . running_time_us )
4228    }
4229}
4230pub type rb_thread_t = rb_thread_struct;
4231#[repr(C)]
4232#[derive(Debug, Copy, Clone)]
4233pub struct rb_compile_option_struct {
4234    pub inline_const_cache: ::std::os::raw::c_int,
4235    pub peephole_optimization: ::std::os::raw::c_int,
4236    pub tailcall_optimization: ::std::os::raw::c_int,
4237    pub specialized_instruction: ::std::os::raw::c_int,
4238    pub operands_unification: ::std::os::raw::c_int,
4239    pub instructions_unification: ::std::os::raw::c_int,
4240    pub stack_caching: ::std::os::raw::c_int,
4241    pub trace_instruction: ::std::os::raw::c_int,
4242    pub debug_level: ::std::os::raw::c_int,
4243}
4244#[test]
4245fn bindgen_test_layout_rb_compile_option_struct() {
4246    assert_eq!(
4247        ::std::mem::size_of::<rb_compile_option_struct>(),
4248        36usize,
4249        concat!("Size of: ", stringify!(rb_compile_option_struct))
4250    );
4251    assert_eq!(
4252        ::std::mem::align_of::<rb_compile_option_struct>(),
4253        4usize,
4254        concat!("Alignment of ", stringify!(rb_compile_option_struct))
4255    );
4256    assert_eq!(
4257        unsafe {
4258            &(*(::std::ptr::null::<rb_compile_option_struct>())).inline_const_cache as *const _
4259                as usize
4260        },
4261        0usize,
4262        concat!(
4263            "Offset of field: ",
4264            stringify!(rb_compile_option_struct),
4265            "::",
4266            stringify!(inline_const_cache)
4267        )
4268    );
4269    assert_eq!(
4270        unsafe {
4271            &(*(::std::ptr::null::<rb_compile_option_struct>())).peephole_optimization as *const _
4272                as usize
4273        },
4274        4usize,
4275        concat!(
4276            "Offset of field: ",
4277            stringify!(rb_compile_option_struct),
4278            "::",
4279            stringify!(peephole_optimization)
4280        )
4281    );
4282    assert_eq!(
4283        unsafe {
4284            &(*(::std::ptr::null::<rb_compile_option_struct>())).tailcall_optimization as *const _
4285                as usize
4286        },
4287        8usize,
4288        concat!(
4289            "Offset of field: ",
4290            stringify!(rb_compile_option_struct),
4291            "::",
4292            stringify!(tailcall_optimization)
4293        )
4294    );
4295    assert_eq!(
4296        unsafe {
4297            &(*(::std::ptr::null::<rb_compile_option_struct>())).specialized_instruction as *const _
4298                as usize
4299        },
4300        12usize,
4301        concat!(
4302            "Offset of field: ",
4303            stringify!(rb_compile_option_struct),
4304            "::",
4305            stringify!(specialized_instruction)
4306        )
4307    );
4308    assert_eq!(
4309        unsafe {
4310            &(*(::std::ptr::null::<rb_compile_option_struct>())).operands_unification as *const _
4311                as usize
4312        },
4313        16usize,
4314        concat!(
4315            "Offset of field: ",
4316            stringify!(rb_compile_option_struct),
4317            "::",
4318            stringify!(operands_unification)
4319        )
4320    );
4321    assert_eq!(
4322        unsafe {
4323            &(*(::std::ptr::null::<rb_compile_option_struct>())).instructions_unification
4324                as *const _ as usize
4325        },
4326        20usize,
4327        concat!(
4328            "Offset of field: ",
4329            stringify!(rb_compile_option_struct),
4330            "::",
4331            stringify!(instructions_unification)
4332        )
4333    );
4334    assert_eq!(
4335        unsafe {
4336            &(*(::std::ptr::null::<rb_compile_option_struct>())).stack_caching as *const _ as usize
4337        },
4338        24usize,
4339        concat!(
4340            "Offset of field: ",
4341            stringify!(rb_compile_option_struct),
4342            "::",
4343            stringify!(stack_caching)
4344        )
4345    );
4346    assert_eq!(
4347        unsafe {
4348            &(*(::std::ptr::null::<rb_compile_option_struct>())).trace_instruction as *const _
4349                as usize
4350        },
4351        28usize,
4352        concat!(
4353            "Offset of field: ",
4354            stringify!(rb_compile_option_struct),
4355            "::",
4356            stringify!(trace_instruction)
4357        )
4358    );
4359    assert_eq!(
4360        unsafe {
4361            &(*(::std::ptr::null::<rb_compile_option_struct>())).debug_level as *const _ as usize
4362        },
4363        32usize,
4364        concat!(
4365            "Offset of field: ",
4366            stringify!(rb_compile_option_struct),
4367            "::",
4368            stringify!(debug_level)
4369        )
4370    );
4371}
4372#[repr(C)]
4373#[derive(Debug, Copy, Clone)]
4374pub struct iseq_insn_info_entry {
4375    pub position: ::std::os::raw::c_ushort,
4376    pub line_no: ::std::os::raw::c_ushort,
4377    pub sp: ::std::os::raw::c_ushort,
4378}
4379#[test]
4380fn bindgen_test_layout_iseq_insn_info_entry() {
4381    assert_eq!(
4382        ::std::mem::size_of::<iseq_insn_info_entry>(),
4383        6usize,
4384        concat!("Size of: ", stringify!(iseq_insn_info_entry))
4385    );
4386    assert_eq!(
4387        ::std::mem::align_of::<iseq_insn_info_entry>(),
4388        2usize,
4389        concat!("Alignment of ", stringify!(iseq_insn_info_entry))
4390    );
4391    assert_eq!(
4392        unsafe { &(*(::std::ptr::null::<iseq_insn_info_entry>())).position as *const _ as usize },
4393        0usize,
4394        concat!(
4395            "Offset of field: ",
4396            stringify!(iseq_insn_info_entry),
4397            "::",
4398            stringify!(position)
4399        )
4400    );
4401    assert_eq!(
4402        unsafe { &(*(::std::ptr::null::<iseq_insn_info_entry>())).line_no as *const _ as usize },
4403        2usize,
4404        concat!(
4405            "Offset of field: ",
4406            stringify!(iseq_insn_info_entry),
4407            "::",
4408            stringify!(line_no)
4409        )
4410    );
4411    assert_eq!(
4412        unsafe { &(*(::std::ptr::null::<iseq_insn_info_entry>())).sp as *const _ as usize },
4413        4usize,
4414        concat!(
4415            "Offset of field: ",
4416            stringify!(iseq_insn_info_entry),
4417            "::",
4418            stringify!(sp)
4419        )
4420    );
4421}
4422#[repr(C)]
4423#[derive(Debug, Copy, Clone)]
4424pub struct iseq_catch_table_entry {
4425    pub type_: iseq_catch_table_entry_catch_type,
4426    pub iseq: VALUE,
4427    pub start: ::std::os::raw::c_ulong,
4428    pub end: ::std::os::raw::c_ulong,
4429    pub cont: ::std::os::raw::c_ulong,
4430    pub sp: ::std::os::raw::c_ulong,
4431}
4432pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RESCUE: iseq_catch_table_entry_catch_type =
4433    0;
4434pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_ENSURE: iseq_catch_table_entry_catch_type =
4435    1;
4436pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RETRY: iseq_catch_table_entry_catch_type = 2;
4437pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_BREAK: iseq_catch_table_entry_catch_type = 3;
4438pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_REDO: iseq_catch_table_entry_catch_type = 4;
4439pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_NEXT: iseq_catch_table_entry_catch_type = 5;
4440pub type iseq_catch_table_entry_catch_type = ::std::os::raw::c_uint;
4441#[test]
4442fn bindgen_test_layout_iseq_catch_table_entry() {
4443    assert_eq!(
4444        ::std::mem::size_of::<iseq_catch_table_entry>(),
4445        48usize,
4446        concat!("Size of: ", stringify!(iseq_catch_table_entry))
4447    );
4448    assert_eq!(
4449        ::std::mem::align_of::<iseq_catch_table_entry>(),
4450        8usize,
4451        concat!("Alignment of ", stringify!(iseq_catch_table_entry))
4452    );
4453    assert_eq!(
4454        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).type_ as *const _ as usize },
4455        0usize,
4456        concat!(
4457            "Offset of field: ",
4458            stringify!(iseq_catch_table_entry),
4459            "::",
4460            stringify!(type_)
4461        )
4462    );
4463    assert_eq!(
4464        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).iseq as *const _ as usize },
4465        8usize,
4466        concat!(
4467            "Offset of field: ",
4468            stringify!(iseq_catch_table_entry),
4469            "::",
4470            stringify!(iseq)
4471        )
4472    );
4473    assert_eq!(
4474        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).start as *const _ as usize },
4475        16usize,
4476        concat!(
4477            "Offset of field: ",
4478            stringify!(iseq_catch_table_entry),
4479            "::",
4480            stringify!(start)
4481        )
4482    );
4483    assert_eq!(
4484        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).end as *const _ as usize },
4485        24usize,
4486        concat!(
4487            "Offset of field: ",
4488            stringify!(iseq_catch_table_entry),
4489            "::",
4490            stringify!(end)
4491        )
4492    );
4493    assert_eq!(
4494        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).cont as *const _ as usize },
4495        32usize,
4496        concat!(
4497            "Offset of field: ",
4498            stringify!(iseq_catch_table_entry),
4499            "::",
4500            stringify!(cont)
4501        )
4502    );
4503    assert_eq!(
4504        unsafe { &(*(::std::ptr::null::<iseq_catch_table_entry>())).sp as *const _ as usize },
4505        40usize,
4506        concat!(
4507            "Offset of field: ",
4508            stringify!(iseq_catch_table_entry),
4509            "::",
4510            stringify!(sp)
4511        )
4512    );
4513}
4514#[repr(C)]
4515#[derive(Debug, Copy, Clone)]
4516pub struct iseq_compile_data_storage {
4517    pub next: *mut iseq_compile_data_storage,
4518    pub pos: ::std::os::raw::c_ulong,
4519    pub size: ::std::os::raw::c_ulong,
4520    pub buff: *mut ::std::os::raw::c_char,
4521}
4522#[test]
4523fn bindgen_test_layout_iseq_compile_data_storage() {
4524    assert_eq!(
4525        ::std::mem::size_of::<iseq_compile_data_storage>(),
4526        32usize,
4527        concat!("Size of: ", stringify!(iseq_compile_data_storage))
4528    );
4529    assert_eq!(
4530        ::std::mem::align_of::<iseq_compile_data_storage>(),
4531        8usize,
4532        concat!("Alignment of ", stringify!(iseq_compile_data_storage))
4533    );
4534    assert_eq!(
4535        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).next as *const _ as usize },
4536        0usize,
4537        concat!(
4538            "Offset of field: ",
4539            stringify!(iseq_compile_data_storage),
4540            "::",
4541            stringify!(next)
4542        )
4543    );
4544    assert_eq!(
4545        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).pos as *const _ as usize },
4546        8usize,
4547        concat!(
4548            "Offset of field: ",
4549            stringify!(iseq_compile_data_storage),
4550            "::",
4551            stringify!(pos)
4552        )
4553    );
4554    assert_eq!(
4555        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).size as *const _ as usize },
4556        16usize,
4557        concat!(
4558            "Offset of field: ",
4559            stringify!(iseq_compile_data_storage),
4560            "::",
4561            stringify!(size)
4562        )
4563    );
4564    assert_eq!(
4565        unsafe { &(*(::std::ptr::null::<iseq_compile_data_storage>())).buff as *const _ as usize },
4566        24usize,
4567        concat!(
4568            "Offset of field: ",
4569            stringify!(iseq_compile_data_storage),
4570            "::",
4571            stringify!(buff)
4572        )
4573    );
4574}
4575#[repr(C)]
4576#[derive(Debug, Copy, Clone)]
4577pub struct iseq_compile_data {
4578    pub err_info: VALUE,
4579    pub mark_ary: VALUE,
4580    pub catch_table_ary: VALUE,
4581    pub start_label: *mut iseq_label_data,
4582    pub end_label: *mut iseq_label_data,
4583    pub redo_label: *mut iseq_label_data,
4584    pub current_block: VALUE,
4585    pub ensure_node: VALUE,
4586    pub for_iseq: VALUE,
4587    pub ensure_node_stack: *mut iseq_compile_data_ensure_node_stack,
4588    pub loopval_popped: ::std::os::raw::c_int,
4589    pub cached_const: ::std::os::raw::c_int,
4590    pub storage_head: *mut iseq_compile_data_storage,
4591    pub storage_current: *mut iseq_compile_data_storage,
4592    pub last_line: ::std::os::raw::c_int,
4593    pub last_coverable_line: ::std::os::raw::c_int,
4594    pub flip_cnt: ::std::os::raw::c_int,
4595    pub label_no: ::std::os::raw::c_int,
4596    pub node_level: ::std::os::raw::c_int,
4597    pub option: *const rb_compile_option_t,
4598}
4599#[test]
4600fn bindgen_test_layout_iseq_compile_data() {
4601    assert_eq!(
4602        ::std::mem::size_of::<iseq_compile_data>(),
4603        136usize,
4604        concat!("Size of: ", stringify!(iseq_compile_data))
4605    );
4606    assert_eq!(
4607        ::std::mem::align_of::<iseq_compile_data>(),
4608        8usize,
4609        concat!("Alignment of ", stringify!(iseq_compile_data))
4610    );
4611    assert_eq!(
4612        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).err_info as *const _ as usize },
4613        0usize,
4614        concat!(
4615            "Offset of field: ",
4616            stringify!(iseq_compile_data),
4617            "::",
4618            stringify!(err_info)
4619        )
4620    );
4621    assert_eq!(
4622        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).mark_ary as *const _ as usize },
4623        8usize,
4624        concat!(
4625            "Offset of field: ",
4626            stringify!(iseq_compile_data),
4627            "::",
4628            stringify!(mark_ary)
4629        )
4630    );
4631    assert_eq!(
4632        unsafe {
4633            &(*(::std::ptr::null::<iseq_compile_data>())).catch_table_ary as *const _ as usize
4634        },
4635        16usize,
4636        concat!(
4637            "Offset of field: ",
4638            stringify!(iseq_compile_data),
4639            "::",
4640            stringify!(catch_table_ary)
4641        )
4642    );
4643    assert_eq!(
4644        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).start_label as *const _ as usize },
4645        24usize,
4646        concat!(
4647            "Offset of field: ",
4648            stringify!(iseq_compile_data),
4649            "::",
4650            stringify!(start_label)
4651        )
4652    );
4653    assert_eq!(
4654        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).end_label as *const _ as usize },
4655        32usize,
4656        concat!(
4657            "Offset of field: ",
4658            stringify!(iseq_compile_data),
4659            "::",
4660            stringify!(end_label)
4661        )
4662    );
4663    assert_eq!(
4664        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).redo_label as *const _ as usize },
4665        40usize,
4666        concat!(
4667            "Offset of field: ",
4668            stringify!(iseq_compile_data),
4669            "::",
4670            stringify!(redo_label)
4671        )
4672    );
4673    assert_eq!(
4674        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).current_block as *const _ as usize },
4675        48usize,
4676        concat!(
4677            "Offset of field: ",
4678            stringify!(iseq_compile_data),
4679            "::",
4680            stringify!(current_block)
4681        )
4682    );
4683    assert_eq!(
4684        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).ensure_node as *const _ as usize },
4685        56usize,
4686        concat!(
4687            "Offset of field: ",
4688            stringify!(iseq_compile_data),
4689            "::",
4690            stringify!(ensure_node)
4691        )
4692    );
4693    assert_eq!(
4694        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).for_iseq as *const _ as usize },
4695        64usize,
4696        concat!(
4697            "Offset of field: ",
4698            stringify!(iseq_compile_data),
4699            "::",
4700            stringify!(for_iseq)
4701        )
4702    );
4703    assert_eq!(
4704        unsafe {
4705            &(*(::std::ptr::null::<iseq_compile_data>())).ensure_node_stack as *const _ as usize
4706        },
4707        72usize,
4708        concat!(
4709            "Offset of field: ",
4710            stringify!(iseq_compile_data),
4711            "::",
4712            stringify!(ensure_node_stack)
4713        )
4714    );
4715    assert_eq!(
4716        unsafe {
4717            &(*(::std::ptr::null::<iseq_compile_data>())).loopval_popped as *const _ as usize
4718        },
4719        80usize,
4720        concat!(
4721            "Offset of field: ",
4722            stringify!(iseq_compile_data),
4723            "::",
4724            stringify!(loopval_popped)
4725        )
4726    );
4727    assert_eq!(
4728        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).cached_const as *const _ as usize },
4729        84usize,
4730        concat!(
4731            "Offset of field: ",
4732            stringify!(iseq_compile_data),
4733            "::",
4734            stringify!(cached_const)
4735        )
4736    );
4737    assert_eq!(
4738        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).storage_head as *const _ as usize },
4739        88usize,
4740        concat!(
4741            "Offset of field: ",
4742            stringify!(iseq_compile_data),
4743            "::",
4744            stringify!(storage_head)
4745        )
4746    );
4747    assert_eq!(
4748        unsafe {
4749            &(*(::std::ptr::null::<iseq_compile_data>())).storage_current as *const _ as usize
4750        },
4751        96usize,
4752        concat!(
4753            "Offset of field: ",
4754            stringify!(iseq_compile_data),
4755            "::",
4756            stringify!(storage_current)
4757        )
4758    );
4759    assert_eq!(
4760        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).last_line as *const _ as usize },
4761        104usize,
4762        concat!(
4763            "Offset of field: ",
4764            stringify!(iseq_compile_data),
4765            "::",
4766            stringify!(last_line)
4767        )
4768    );
4769    assert_eq!(
4770        unsafe {
4771            &(*(::std::ptr::null::<iseq_compile_data>())).last_coverable_line as *const _ as usize
4772        },
4773        108usize,
4774        concat!(
4775            "Offset of field: ",
4776            stringify!(iseq_compile_data),
4777            "::",
4778            stringify!(last_coverable_line)
4779        )
4780    );
4781    assert_eq!(
4782        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).flip_cnt as *const _ as usize },
4783        112usize,
4784        concat!(
4785            "Offset of field: ",
4786            stringify!(iseq_compile_data),
4787            "::",
4788            stringify!(flip_cnt)
4789        )
4790    );
4791    assert_eq!(
4792        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).label_no as *const _ as usize },
4793        116usize,
4794        concat!(
4795            "Offset of field: ",
4796            stringify!(iseq_compile_data),
4797            "::",
4798            stringify!(label_no)
4799        )
4800    );
4801    assert_eq!(
4802        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).node_level as *const _ as usize },
4803        120usize,
4804        concat!(
4805            "Offset of field: ",
4806            stringify!(iseq_compile_data),
4807            "::",
4808            stringify!(node_level)
4809        )
4810    );
4811    assert_eq!(
4812        unsafe { &(*(::std::ptr::null::<iseq_compile_data>())).option as *const _ as usize },
4813        128usize,
4814        concat!(
4815            "Offset of field: ",
4816            stringify!(iseq_compile_data),
4817            "::",
4818            stringify!(option)
4819        )
4820    );
4821}
4822#[repr(C)]
4823#[derive(Debug, Copy, Clone)]
4824pub struct st_table_entry {
4825    pub _address: u8,
4826}
4827#[repr(C)]
4828#[derive(Debug, Copy, Clone)]
4829pub struct iseq_label_data {
4830    pub _address: u8,
4831}