1#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6 storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9 #[inline]
10 pub const fn new(storage: Storage) -> Self {
11 Self { storage }
12 }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16 Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18 #[inline]
19 fn extract_bit(byte: u8, index: usize) -> bool {
20 let bit_index = if cfg!(target_endian = "big") {
21 7 - (index % 8)
22 } else {
23 index % 8
24 };
25 let mask = 1 << bit_index;
26 byte & mask == mask
27 }
28 #[inline]
29 pub fn get_bit(&self, index: usize) -> bool {
30 debug_assert!(index / 8 < self.storage.as_ref().len());
31 let byte_index = index / 8;
32 let byte = self.storage.as_ref()[byte_index];
33 Self::extract_bit(byte, index)
34 }
35 #[inline]
36 pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38 let byte_index = index / 8;
39 let byte = unsafe {
40 *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41 };
42 Self::extract_bit(byte, index)
43 }
44 #[inline]
45 fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46 let bit_index = if cfg!(target_endian = "big") {
47 7 - (index % 8)
48 } else {
49 index % 8
50 };
51 let mask = 1 << bit_index;
52 if val {
53 byte | mask
54 } else {
55 byte & !mask
56 }
57 }
58 #[inline]
59 pub fn set_bit(&mut self, index: usize, val: bool) {
60 debug_assert!(index / 8 < self.storage.as_ref().len());
61 let byte_index = index / 8;
62 let byte = &mut self.storage.as_mut()[byte_index];
63 *byte = Self::change_bit(*byte, index, val);
64 }
65 #[inline]
66 pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
67 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
68 let byte_index = index / 8;
69 let byte = unsafe {
70 (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
71 };
72 unsafe { *byte = Self::change_bit(*byte, index, val) };
73 }
74 #[inline]
75 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
76 debug_assert!(bit_width <= 64);
77 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
78 debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len());
79 if bit_width == 0 {
80 return 0;
81 }
82 let mut val = 0u64;
83 let storage = self.storage.as_ref();
84 let start_byte = bit_offset / 8;
85 let bit_shift = bit_offset % 8;
86 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
87 if cfg!(target_endian = "big") {
88 for i in 0..bytes_needed {
89 val |= (storage[start_byte + i].reverse_bits() as u64) << (i * 8);
90 }
91 } else {
92 for i in 0..bytes_needed {
93 val |= (storage[start_byte + i] as u64) << (i * 8);
94 }
95 }
96 val >>= bit_shift;
97 if bit_width < 64 {
98 val &= (1u64 << bit_width) - 1;
99 }
100 if cfg!(target_endian = "big") {
101 val = val.reverse_bits() >> (64 - bit_width as usize);
102 }
103 val
104 }
105 #[inline]
106 pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
107 debug_assert!(bit_width <= 64);
108 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
109 debug_assert!(
110 (bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>()
111 );
112 if bit_width == 0 {
113 return 0;
114 }
115 let mut val = 0u64;
116 let start_byte = bit_offset / 8;
117 let bit_shift = bit_offset % 8;
118 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
119 let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
120 if cfg!(target_endian = "big") {
121 for i in 0..bytes_needed {
122 let byte = unsafe { *storage_ptr.add(start_byte + i) };
123 val |= (byte.reverse_bits() as u64) << (i * 8);
124 }
125 } else {
126 for i in 0..bytes_needed {
127 let byte = unsafe { *storage_ptr.add(start_byte + i) };
128 val |= (byte as u64) << (i * 8);
129 }
130 }
131 val >>= bit_shift;
132 if bit_width < 64 {
133 val &= (1u64 << bit_width) - 1;
134 }
135 if cfg!(target_endian = "big") {
136 val = val.reverse_bits() >> (64 - bit_width as usize);
137 }
138 val
139 }
140 #[inline]
141 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
142 debug_assert!(bit_width <= 64);
143 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
144 debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len());
145 if bit_width == 0 {
146 return;
147 }
148 let mut val = val;
149 if bit_width < 64 {
150 val &= (1u64 << bit_width) - 1;
151 }
152 if cfg!(target_endian = "big") {
153 val = val.reverse_bits() >> (64 - bit_width as usize);
154 }
155 let storage = self.storage.as_mut();
156 let start_byte = bit_offset / 8;
157 let bit_shift = bit_offset % 8;
158 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
159 val <<= bit_shift;
160 let field_mask = if bit_width as usize + bit_shift >= 64 {
161 !0u64 << bit_shift
162 } else {
163 ((1u64 << bit_width) - 1) << bit_shift
164 };
165 for i in 0..bytes_needed {
166 let byte_val = (val >> (i * 8)) as u8;
167 let byte_mask = (field_mask >> (i * 8)) as u8;
168 if cfg!(target_endian = "big") {
169 let byte = storage[start_byte + i].reverse_bits();
170 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
171 storage[start_byte + i] = new_byte.reverse_bits();
172 } else {
173 storage[start_byte + i] =
174 (storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
175 }
176 }
177 }
178 #[inline]
179 pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
180 debug_assert!(bit_width <= 64);
181 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
182 debug_assert!(
183 (bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>()
184 );
185 if bit_width == 0 {
186 return;
187 }
188 let mut val = val;
189 if bit_width < 64 {
190 val &= (1u64 << bit_width) - 1;
191 }
192 if cfg!(target_endian = "big") {
193 val = val.reverse_bits() >> (64 - bit_width as usize);
194 }
195 let start_byte = bit_offset / 8;
196 let bit_shift = bit_offset % 8;
197 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
198 val <<= bit_shift;
199 let field_mask = if bit_width as usize + bit_shift >= 64 {
200 !0u64 << bit_shift
201 } else {
202 ((1u64 << bit_width) - 1) << bit_shift
203 };
204 let storage_ptr = unsafe { core::ptr::addr_of_mut!((*this).storage) as *mut u8 };
205 for i in 0..bytes_needed {
206 let byte_val = (val >> (i * 8)) as u8;
207 let byte_mask = (field_mask >> (i * 8)) as u8;
208 let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
209 if cfg!(target_endian = "big") {
210 let byte = unsafe { (*byte_ptr).reverse_bits() };
211 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
212 unsafe { *byte_ptr = new_byte.reverse_bits() };
213 } else {
214 unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
215 }
216 }
217 }
218}
219#[doc = " Const-generic methods for efficient bitfield access when offset and width"]
220#[doc = " are known at compile time."]
221impl<const N: usize> __BindgenBitfieldUnit<[u8; N]> {
222 #[doc = " Get a field using const generics for compile-time optimization."]
223 #[doc = " Uses native word size operations when the field fits in usize."]
224 #[inline]
225 pub const fn get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&self) -> u64 {
226 debug_assert!(BIT_WIDTH <= 64);
227 debug_assert!(BIT_OFFSET / 8 < N);
228 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
229 if BIT_WIDTH == 0 {
230 return 0;
231 }
232 let start_byte = BIT_OFFSET / 8;
233 let bit_shift = BIT_OFFSET % 8;
234 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
235 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
236 let mut val = 0usize;
237 if cfg!(target_endian = "big") {
238 let mut i = 0;
239 while i < bytes_needed {
240 val |= (self.storage[start_byte + i].reverse_bits() as usize) << (i * 8);
241 i += 1;
242 }
243 } else {
244 let mut i = 0;
245 while i < bytes_needed {
246 val |= (self.storage[start_byte + i] as usize) << (i * 8);
247 i += 1;
248 }
249 }
250 val >>= bit_shift;
251 if (BIT_WIDTH as u32) < usize::BITS {
252 val &= (1usize << BIT_WIDTH) - 1;
253 }
254 if cfg!(target_endian = "big") {
255 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
256 }
257 val as u64
258 } else {
259 let mut val = 0u64;
260 if cfg!(target_endian = "big") {
261 let mut i = 0;
262 while i < bytes_needed {
263 val |= (self.storage[start_byte + i].reverse_bits() as u64) << (i * 8);
264 i += 1;
265 }
266 } else {
267 let mut i = 0;
268 while i < bytes_needed {
269 val |= (self.storage[start_byte + i] as u64) << (i * 8);
270 i += 1;
271 }
272 }
273 val >>= bit_shift;
274 if BIT_WIDTH < 64 {
275 val &= (1u64 << BIT_WIDTH) - 1;
276 }
277 if cfg!(target_endian = "big") {
278 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
279 }
280 val
281 }
282 }
283 #[doc = " Set a field using const generics for compile-time optimization."]
284 #[doc = " Uses native word size operations when the field fits in usize."]
285 #[inline]
286 pub fn set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&mut self, val: u64) {
287 debug_assert!(BIT_WIDTH <= 64);
288 debug_assert!(BIT_OFFSET / 8 < N);
289 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
290 if BIT_WIDTH == 0 {
291 return;
292 }
293 let start_byte = BIT_OFFSET / 8;
294 let bit_shift = BIT_OFFSET % 8;
295 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
296 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
297 let mut val = val as usize;
298 if (BIT_WIDTH as u32) < usize::BITS {
299 val &= (1usize << BIT_WIDTH) - 1;
300 }
301 if cfg!(target_endian = "big") {
302 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
303 }
304 val <<= bit_shift;
305 let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
306 !0usize << bit_shift
307 } else {
308 ((1usize << BIT_WIDTH) - 1) << bit_shift
309 };
310 let mut i = 0;
311 while i < bytes_needed {
312 let byte_val = (val >> (i * 8)) as u8;
313 let byte_mask = (field_mask >> (i * 8)) as u8;
314 if cfg!(target_endian = "big") {
315 let byte = self.storage[start_byte + i].reverse_bits();
316 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
317 self.storage[start_byte + i] = new_byte.reverse_bits();
318 } else {
319 self.storage[start_byte + i] =
320 (self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
321 }
322 i += 1;
323 }
324 } else {
325 let mut val = val;
326 if BIT_WIDTH < 64 {
327 val &= (1u64 << BIT_WIDTH) - 1;
328 }
329 if cfg!(target_endian = "big") {
330 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
331 }
332 val <<= bit_shift;
333 let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
334 !0u64 << bit_shift
335 } else {
336 ((1u64 << BIT_WIDTH) - 1) << bit_shift
337 };
338 let mut i = 0;
339 while i < bytes_needed {
340 let byte_val = (val >> (i * 8)) as u8;
341 let byte_mask = (field_mask >> (i * 8)) as u8;
342 if cfg!(target_endian = "big") {
343 let byte = self.storage[start_byte + i].reverse_bits();
344 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
345 self.storage[start_byte + i] = new_byte.reverse_bits();
346 } else {
347 self.storage[start_byte + i] =
348 (self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
349 }
350 i += 1;
351 }
352 }
353 }
354 #[doc = " Raw pointer get using const generics for compile-time optimization."]
355 #[doc = " Uses native word size operations when the field fits in usize."]
356 #[inline]
357 pub const unsafe fn raw_get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
358 this: *const Self,
359 ) -> u64 {
360 debug_assert!(BIT_WIDTH <= 64);
361 debug_assert!(BIT_OFFSET / 8 < N);
362 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
363 if BIT_WIDTH == 0 {
364 return 0;
365 }
366 let start_byte = BIT_OFFSET / 8;
367 let bit_shift = BIT_OFFSET % 8;
368 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
369 let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
370 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
371 let mut val = 0usize;
372 if cfg!(target_endian = "big") {
373 let mut i = 0;
374 while i < bytes_needed {
375 let byte = unsafe { *storage_ptr.add(start_byte + i) };
376 val |= (byte.reverse_bits() as usize) << (i * 8);
377 i += 1;
378 }
379 } else {
380 let mut i = 0;
381 while i < bytes_needed {
382 let byte = unsafe { *storage_ptr.add(start_byte + i) };
383 val |= (byte as usize) << (i * 8);
384 i += 1;
385 }
386 }
387 val >>= bit_shift;
388 if (BIT_WIDTH as u32) < usize::BITS {
389 val &= (1usize << BIT_WIDTH) - 1;
390 }
391 if cfg!(target_endian = "big") {
392 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
393 }
394 val as u64
395 } else {
396 let mut val = 0u64;
397 if cfg!(target_endian = "big") {
398 let mut i = 0;
399 while i < bytes_needed {
400 let byte = unsafe { *storage_ptr.add(start_byte + i) };
401 val |= (byte.reverse_bits() as u64) << (i * 8);
402 i += 1;
403 }
404 } else {
405 let mut i = 0;
406 while i < bytes_needed {
407 let byte = unsafe { *storage_ptr.add(start_byte + i) };
408 val |= (byte as u64) << (i * 8);
409 i += 1;
410 }
411 }
412 val >>= bit_shift;
413 if BIT_WIDTH < 64 {
414 val &= (1u64 << BIT_WIDTH) - 1;
415 }
416 if cfg!(target_endian = "big") {
417 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
418 }
419 val
420 }
421 }
422 #[doc = " Raw pointer set using const generics for compile-time optimization."]
423 #[doc = " Uses native word size operations when the field fits in usize."]
424 #[inline]
425 pub unsafe fn raw_set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
426 this: *mut Self,
427 val: u64,
428 ) {
429 debug_assert!(BIT_WIDTH <= 64);
430 debug_assert!(BIT_OFFSET / 8 < N);
431 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
432 if BIT_WIDTH == 0 {
433 return;
434 }
435 let start_byte = BIT_OFFSET / 8;
436 let bit_shift = BIT_OFFSET % 8;
437 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
438 let storage_ptr = this.cast::<[u8; N]>().cast::<u8>();
439 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
440 let mut val = val as usize;
441 if (BIT_WIDTH as u32) < usize::BITS {
442 val &= (1usize << BIT_WIDTH) - 1;
443 }
444 if cfg!(target_endian = "big") {
445 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
446 }
447 val <<= bit_shift;
448 let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
449 !0usize << bit_shift
450 } else {
451 ((1usize << BIT_WIDTH) - 1) << bit_shift
452 };
453 let mut i = 0;
454 while i < bytes_needed {
455 let byte_val = (val >> (i * 8)) as u8;
456 let byte_mask = (field_mask >> (i * 8)) as u8;
457 let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
458 if cfg!(target_endian = "big") {
459 let byte = unsafe { (*byte_ptr).reverse_bits() };
460 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
461 unsafe { *byte_ptr = new_byte.reverse_bits() };
462 } else {
463 unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
464 }
465 i += 1;
466 }
467 } else {
468 let mut val = val;
469 if BIT_WIDTH < 64 {
470 val &= (1u64 << BIT_WIDTH) - 1;
471 }
472 if cfg!(target_endian = "big") {
473 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
474 }
475 val <<= bit_shift;
476 let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
477 !0u64 << bit_shift
478 } else {
479 ((1u64 << BIT_WIDTH) - 1) << bit_shift
480 };
481 let mut i = 0;
482 while i < bytes_needed {
483 let byte_val = (val >> (i * 8)) as u8;
484 let byte_mask = (field_mask >> (i * 8)) as u8;
485 let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
486 if cfg!(target_endian = "big") {
487 let byte = unsafe { (*byte_ptr).reverse_bits() };
488 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
489 unsafe { *byte_ptr = new_byte.reverse_bits() };
490 } else {
491 unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
492 }
493 i += 1;
494 }
495 }
496 }
497}
498pub type __clockid_t = ::std::os::raw::c_int;
499pub type clockid_t = __clockid_t;
500#[repr(C)]
501#[derive(Debug, Copy, Clone)]
502pub struct __sigset_t {
503 pub __val: [usize; 16usize],
504}
505#[repr(C)]
506#[derive(Debug, Copy, Clone)]
507pub struct __pthread_internal_list {
508 pub __prev: *mut __pthread_internal_list,
509 pub __next: *mut __pthread_internal_list,
510}
511pub type __pthread_list_t = __pthread_internal_list;
512#[repr(C)]
513#[derive(Debug, Copy, Clone)]
514pub struct __pthread_mutex_s {
515 pub __lock: ::std::os::raw::c_int,
516 pub __count: ::std::os::raw::c_uint,
517 pub __owner: ::std::os::raw::c_int,
518 pub __nusers: ::std::os::raw::c_uint,
519 pub __kind: ::std::os::raw::c_int,
520 pub __spins: ::std::os::raw::c_short,
521 pub __elision: ::std::os::raw::c_short,
522 pub __list: __pthread_list_t,
523}
524#[repr(C)]
525#[derive(Copy, Clone)]
526pub struct __pthread_cond_s {
527 pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
528 pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
529 pub __g_refs: [::std::os::raw::c_uint; 2usize],
530 pub __g_size: [::std::os::raw::c_uint; 2usize],
531 pub __g1_orig_size: ::std::os::raw::c_uint,
532 pub __wrefs: ::std::os::raw::c_uint,
533 pub __g_signals: [::std::os::raw::c_uint; 2usize],
534}
535#[repr(C)]
536#[derive(Copy, Clone)]
537pub union __pthread_cond_s__bindgen_ty_1 {
538 pub __wseq: ::std::os::raw::c_ulonglong,
539 pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
544 pub __low: ::std::os::raw::c_uint,
545 pub __high: ::std::os::raw::c_uint,
546}
547impl ::std::fmt::Debug for __pthread_cond_s__bindgen_ty_1 {
548 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
549 write!(f, "__pthread_cond_s__bindgen_ty_1 {{ union }}")
550 }
551}
552#[repr(C)]
553#[derive(Copy, Clone)]
554pub union __pthread_cond_s__bindgen_ty_2 {
555 pub __g1_start: ::std::os::raw::c_ulonglong,
556 pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
557}
558#[repr(C)]
559#[derive(Debug, Copy, Clone)]
560pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
561 pub __low: ::std::os::raw::c_uint,
562 pub __high: ::std::os::raw::c_uint,
563}
564impl ::std::fmt::Debug for __pthread_cond_s__bindgen_ty_2 {
565 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
566 write!(f, "__pthread_cond_s__bindgen_ty_2 {{ union }}")
567 }
568}
569impl ::std::fmt::Debug for __pthread_cond_s {
570 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
571 write ! (f , "__pthread_cond_s {{ __bindgen_anon_1: {:?}, __bindgen_anon_2: {:?}, __g_refs: {:?}, __g_size: {:?}, __g1_orig_size: {:?}, __wrefs: {:?}, __g_signals: {:?} }}" , self . __bindgen_anon_1 , self . __bindgen_anon_2 , self . __g_refs , self . __g_size , self . __g1_orig_size , self . __wrefs , self . __g_signals)
572 }
573}
574pub type pthread_t = usize;
575#[repr(C)]
576#[derive(Copy, Clone)]
577pub union pthread_mutex_t {
578 pub __data: __pthread_mutex_s,
579 pub __size: [::std::os::raw::c_char; 40usize],
580 pub __align: ::std::os::raw::c_long,
581}
582impl ::std::fmt::Debug for pthread_mutex_t {
583 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
584 write!(f, "pthread_mutex_t {{ union }}")
585 }
586}
587#[repr(C)]
588#[derive(Copy, Clone)]
589pub union pthread_cond_t {
590 pub __data: __pthread_cond_s,
591 pub __size: [::std::os::raw::c_char; 48usize],
592 pub __align: ::std::os::raw::c_longlong,
593}
594impl ::std::fmt::Debug for pthread_cond_t {
595 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
596 write!(f, "pthread_cond_t {{ union }}")
597 }
598}
599pub type VALUE = usize;
600pub type ID = usize;
601#[repr(C)]
602#[derive(Debug, Copy, Clone)]
603pub struct RBasic {
604 pub flags: VALUE,
605 pub klass: VALUE,
606}
607pub type rb_classext_t = rb_classext_struct;
608#[repr(C)]
609#[derive(Copy, Clone)]
610pub struct RString {
611 pub basic: RBasic,
612 pub as_: RString__bindgen_ty_1,
613}
614#[repr(C)]
615#[derive(Copy, Clone)]
616pub union RString__bindgen_ty_1 {
617 pub heap: RString__bindgen_ty_1__bindgen_ty_1,
618 pub ary: [::std::os::raw::c_char; 24usize],
619}
620#[repr(C)]
621#[derive(Copy, Clone)]
622pub struct RString__bindgen_ty_1__bindgen_ty_1 {
623 pub len: ::std::os::raw::c_long,
624 pub ptr: *mut ::std::os::raw::c_char,
625 pub aux: RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
626}
627#[repr(C)]
628#[derive(Copy, Clone)]
629pub union RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
630 pub capa: ::std::os::raw::c_long,
631 pub shared: VALUE,
632}
633impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
634 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
635 write!(
636 f,
637 "RString__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
638 )
639 }
640}
641impl ::std::fmt::Debug for RString__bindgen_ty_1__bindgen_ty_1 {
642 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
643 write!(
644 f,
645 "RString__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, ptr: {:?}, aux: {:?} }}",
646 self.len, self.ptr, self.aux
647 )
648 }
649}
650impl ::std::fmt::Debug for RString__bindgen_ty_1 {
651 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
652 write!(f, "RString__bindgen_ty_1 {{ union }}")
653 }
654}
655impl ::std::fmt::Debug for RString {
656 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
657 write!(
658 f,
659 "RString {{ basic: {:?}, as: {:?} }}",
660 self.basic, self.as_
661 )
662 }
663}
664#[repr(C)]
665#[derive(Copy, Clone)]
666pub struct RArray {
667 pub basic: RBasic,
668 pub as_: RArray__bindgen_ty_1,
669}
670#[repr(C)]
671#[derive(Copy, Clone)]
672pub union RArray__bindgen_ty_1 {
673 pub heap: RArray__bindgen_ty_1__bindgen_ty_1,
674 pub ary: [VALUE; 3usize],
675}
676#[repr(C)]
677#[derive(Copy, Clone)]
678pub struct RArray__bindgen_ty_1__bindgen_ty_1 {
679 pub len: ::std::os::raw::c_long,
680 pub aux: RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
681 pub ptr: *const VALUE,
682}
683#[repr(C)]
684#[derive(Copy, Clone)]
685pub union RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
686 pub capa: ::std::os::raw::c_long,
687 pub shared: VALUE,
688}
689impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
690 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
691 write!(
692 f,
693 "RArray__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {{ union }}"
694 )
695 }
696}
697impl ::std::fmt::Debug for RArray__bindgen_ty_1__bindgen_ty_1 {
698 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
699 write!(
700 f,
701 "RArray__bindgen_ty_1__bindgen_ty_1 {{ len: {:?}, aux: {:?}, ptr: {:?} }}",
702 self.len, self.aux, self.ptr
703 )
704 }
705}
706impl ::std::fmt::Debug for RArray__bindgen_ty_1 {
707 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
708 write!(f, "RArray__bindgen_ty_1 {{ union }}")
709 }
710}
711impl ::std::fmt::Debug for RArray {
712 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
713 write!(
714 f,
715 "RArray {{ basic: {:?}, as: {:?} }}",
716 self.basic, self.as_
717 )
718 }
719}
720#[repr(C)]
721#[derive(Debug)]
722pub struct rb_global_variable {
723 _unused: [u8; 0],
724}
725pub type st_data_t = usize;
726pub type st_index_t = st_data_t;
727#[repr(C)]
728#[derive(Debug, Copy, Clone)]
729pub struct st_hash_type {
730 pub compare: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
731 pub hash: ::std::option::Option<unsafe extern "C" fn() -> st_index_t>,
732}
733#[repr(C)]
734#[derive(Copy, Clone)]
735pub struct st_table {
736 pub type_: *const st_hash_type,
737 pub num_bins: st_index_t,
738 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
739 pub as_: st_table__bindgen_ty_1,
740}
741#[repr(C)]
742#[derive(Copy, Clone)]
743pub union st_table__bindgen_ty_1 {
744 pub big: st_table__bindgen_ty_1__bindgen_ty_1,
745 pub packed: st_table__bindgen_ty_1__bindgen_ty_2,
746}
747#[repr(C)]
748#[derive(Debug, Copy, Clone)]
749pub struct st_table__bindgen_ty_1__bindgen_ty_1 {
750 pub bins: *mut *mut st_table_entry,
751 pub head: *mut st_table_entry,
752 pub tail: *mut st_table_entry,
753}
754#[repr(C)]
755#[derive(Debug, Copy, Clone)]
756pub struct st_table__bindgen_ty_1__bindgen_ty_2 {
757 pub entries: *mut st_packed_entry,
758 pub real_entries: st_index_t,
759}
760impl ::std::fmt::Debug for st_table__bindgen_ty_1 {
761 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
762 write!(f, "st_table__bindgen_ty_1 {{ union }}")
763 }
764}
765impl ::std::fmt::Debug for st_table {
766 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
767 write ! (f , "st_table {{ type: {:?}, num_bins: {:?}, entries_packed : {:?}, num_entries : {:?}, as: {:?} }}" , self . type_ , self . num_bins , self . entries_packed () , self . num_entries () , self . as_)
768 }
769}
770impl st_table {
771 #[inline]
772 #[allow(unnecessary_transmutes)]
773 pub fn entries_packed(&self) -> ::std::os::raw::c_uint {
774 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<0usize, 1u8>() as u32) }
775 }
776 #[inline]
777 #[allow(unnecessary_transmutes)]
778 pub fn set_entries_packed(&mut self, val: ::std::os::raw::c_uint) {
779 unsafe {
780 let val: u32 = ::std::mem::transmute(val);
781 self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
782 }
783 }
784 #[inline]
785 #[allow(unnecessary_transmutes)]
786 pub unsafe fn entries_packed_raw(this: *const Self) -> ::std::os::raw::c_uint {
787 unsafe {
788 ::std::mem::transmute(
789 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get_const::<0usize, 1u8>(
790 ::std::ptr::addr_of!((*this)._bitfield_1),
791 ) as u32,
792 )
793 }
794 }
795 #[inline]
796 #[allow(unnecessary_transmutes)]
797 pub unsafe fn set_entries_packed_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
798 unsafe {
799 let val: u32 = ::std::mem::transmute(val);
800 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set_const::<0usize, 1u8>(
801 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
802 val as u64,
803 )
804 }
805 }
806 #[inline]
807 #[allow(unnecessary_transmutes)]
808 pub fn num_entries(&self) -> st_index_t {
809 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<1usize, 63u8>() as u64) }
810 }
811 #[inline]
812 #[allow(unnecessary_transmutes)]
813 pub fn set_num_entries(&mut self, val: st_index_t) {
814 unsafe {
815 let val: usize = ::std::mem::transmute(val);
816 self._bitfield_1.set_const::<1usize, 63u8>(val as u64)
817 }
818 }
819 #[inline]
820 #[allow(unnecessary_transmutes)]
821 pub unsafe fn num_entries_raw(this: *const Self) -> st_index_t {
822 unsafe {
823 ::std::mem::transmute(
824 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get_const::<1usize, 63u8>(
825 ::std::ptr::addr_of!((*this)._bitfield_1),
826 ) as u64,
827 )
828 }
829 }
830 #[inline]
831 #[allow(unnecessary_transmutes)]
832 pub unsafe fn set_num_entries_raw(this: *mut Self, val: st_index_t) {
833 unsafe {
834 let val: usize = ::std::mem::transmute(val);
835 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set_const::<1usize, 63u8>(
836 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
837 val as u64,
838 )
839 }
840 }
841 #[inline]
842 #[allow(unnecessary_transmutes)]
843 pub fn new_bitfield_1(
844 entries_packed: ::std::os::raw::c_uint,
845 num_entries: st_index_t,
846 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
847 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
848 __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
849 let entries_packed: u32 = unsafe { ::std::mem::transmute(entries_packed) };
850 entries_packed as u64
851 });
852 __bindgen_bitfield_unit.set_const::<1usize, 63u8>({
853 let num_entries: usize = unsafe { ::std::mem::transmute(num_entries) };
854 num_entries as u64
855 });
856 __bindgen_bitfield_unit
857 }
858}
859pub type rb_alloc_func_t = ::std::option::Option<unsafe extern "C" fn(arg1: VALUE) -> VALUE>;
860pub type rb_unblock_function_t =
861 ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
862pub type rb_event_flag_t = u32;
863#[repr(C)]
864#[derive(Copy, Clone)]
865pub struct RNode {
866 pub flags: VALUE,
867 pub nd_reserved: VALUE,
868 pub u1: RNode__bindgen_ty_1,
869 pub u2: RNode__bindgen_ty_2,
870 pub u3: RNode__bindgen_ty_3,
871}
872#[repr(C)]
873#[derive(Copy, Clone)]
874pub union RNode__bindgen_ty_1 {
875 pub node: *mut RNode,
876 pub id: ID,
877 pub value: VALUE,
878 pub cfunc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
879 pub tbl: *mut ID,
880}
881impl ::std::fmt::Debug for RNode__bindgen_ty_1 {
882 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
883 write!(f, "RNode__bindgen_ty_1 {{ union }}")
884 }
885}
886#[repr(C)]
887#[derive(Copy, Clone)]
888pub union RNode__bindgen_ty_2 {
889 pub node: *mut RNode,
890 pub id: ID,
891 pub argc: ::std::os::raw::c_long,
892 pub value: VALUE,
893}
894impl ::std::fmt::Debug for RNode__bindgen_ty_2 {
895 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
896 write!(f, "RNode__bindgen_ty_2 {{ union }}")
897 }
898}
899#[repr(C)]
900#[derive(Copy, Clone)]
901pub union RNode__bindgen_ty_3 {
902 pub node: *mut RNode,
903 pub id: ID,
904 pub state: ::std::os::raw::c_long,
905 pub entry: *mut rb_global_entry,
906 pub args: *mut rb_args_info,
907 pub cnt: ::std::os::raw::c_long,
908 pub value: VALUE,
909}
910impl ::std::fmt::Debug for RNode__bindgen_ty_3 {
911 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
912 write!(f, "RNode__bindgen_ty_3 {{ union }}")
913 }
914}
915impl ::std::fmt::Debug for RNode {
916 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
917 write!(
918 f,
919 "RNode {{ flags: {:?}, nd_reserved: {:?}, u1: {:?}, u2: {:?}, u3: {:?} }}",
920 self.flags, self.nd_reserved, self.u1, self.u2, self.u3
921 )
922 }
923}
924pub type NODE = RNode;
925#[repr(C)]
926#[derive(Debug, Copy, Clone)]
927pub struct rb_global_entry {
928 pub var: *mut rb_global_variable,
929 pub id: ID,
930}
931#[repr(C)]
932#[derive(Debug, Copy, Clone)]
933pub struct rb_args_info {
934 pub pre_init: *mut NODE,
935 pub post_init: *mut NODE,
936 pub pre_args_num: ::std::os::raw::c_int,
937 pub post_args_num: ::std::os::raw::c_int,
938 pub first_post_arg: ID,
939 pub rest_arg: ID,
940 pub block_arg: ID,
941 pub kw_args: *mut NODE,
942 pub kw_rest_arg: *mut NODE,
943 pub opt_args: *mut NODE,
944}
945pub const ruby_id_types_RUBY_ID_STATIC_SYM: ruby_id_types = 1;
946pub const ruby_id_types_RUBY_ID_LOCAL: ruby_id_types = 0;
947pub const ruby_id_types_RUBY_ID_INSTANCE: ruby_id_types = 2;
948pub const ruby_id_types_RUBY_ID_GLOBAL: ruby_id_types = 6;
949pub const ruby_id_types_RUBY_ID_ATTRSET: ruby_id_types = 8;
950pub const ruby_id_types_RUBY_ID_CONST: ruby_id_types = 10;
951pub const ruby_id_types_RUBY_ID_CLASS: ruby_id_types = 12;
952pub const ruby_id_types_RUBY_ID_JUNK: ruby_id_types = 14;
953pub const ruby_id_types_RUBY_ID_INTERNAL: ruby_id_types = 14;
954pub const ruby_id_types_RUBY_ID_SCOPE_SHIFT: ruby_id_types = 4;
955pub const ruby_id_types_RUBY_ID_SCOPE_MASK: ruby_id_types = 14;
956pub type ruby_id_types = ::std::os::raw::c_uint;
957pub const ruby_method_ids_idDot2: ruby_method_ids = 128;
958pub const ruby_method_ids_idDot3: ruby_method_ids = 129;
959pub const ruby_method_ids_idUPlus: ruby_method_ids = 130;
960pub const ruby_method_ids_idUMinus: ruby_method_ids = 131;
961pub const ruby_method_ids_idPow: ruby_method_ids = 132;
962pub const ruby_method_ids_idCmp: ruby_method_ids = 134;
963pub const ruby_method_ids_idPLUS: ruby_method_ids = 43;
964pub const ruby_method_ids_idMINUS: ruby_method_ids = 45;
965pub const ruby_method_ids_idMULT: ruby_method_ids = 42;
966pub const ruby_method_ids_idDIV: ruby_method_ids = 47;
967pub const ruby_method_ids_idMOD: ruby_method_ids = 37;
968pub const ruby_method_ids_idLT: ruby_method_ids = 60;
969pub const ruby_method_ids_idLTLT: ruby_method_ids = 135;
970pub const ruby_method_ids_idLE: ruby_method_ids = 137;
971pub const ruby_method_ids_idGT: ruby_method_ids = 62;
972pub const ruby_method_ids_idGTGT: ruby_method_ids = 136;
973pub const ruby_method_ids_idGE: ruby_method_ids = 138;
974pub const ruby_method_ids_idEq: ruby_method_ids = 139;
975pub const ruby_method_ids_idEqq: ruby_method_ids = 140;
976pub const ruby_method_ids_idNeq: ruby_method_ids = 141;
977pub const ruby_method_ids_idNot: ruby_method_ids = 33;
978pub const ruby_method_ids_idBackquote: ruby_method_ids = 96;
979pub const ruby_method_ids_idEqTilde: ruby_method_ids = 142;
980pub const ruby_method_ids_idNeqTilde: ruby_method_ids = 143;
981pub const ruby_method_ids_idAREF: ruby_method_ids = 144;
982pub const ruby_method_ids_idASET: ruby_method_ids = 145;
983pub const ruby_method_ids_idCOLON2: ruby_method_ids = 146;
984pub const ruby_method_ids_idANDOP: ruby_method_ids = 148;
985pub const ruby_method_ids_idOROP: ruby_method_ids = 149;
986pub const ruby_method_ids_tPRESERVED_ID_BEGIN: ruby_method_ids = 149;
987pub const ruby_method_ids_idNULL: ruby_method_ids = 150;
988pub const ruby_method_ids_idEmptyP: ruby_method_ids = 151;
989pub const ruby_method_ids_idEqlP: ruby_method_ids = 152;
990pub const ruby_method_ids_idRespond_to: ruby_method_ids = 153;
991pub const ruby_method_ids_idRespond_to_missing: ruby_method_ids = 154;
992pub const ruby_method_ids_idIFUNC: ruby_method_ids = 155;
993pub const ruby_method_ids_idCFUNC: ruby_method_ids = 156;
994pub const ruby_method_ids_id_core_set_method_alias: ruby_method_ids = 157;
995pub const ruby_method_ids_id_core_set_variable_alias: ruby_method_ids = 158;
996pub const ruby_method_ids_id_core_undef_method: ruby_method_ids = 159;
997pub const ruby_method_ids_id_core_define_method: ruby_method_ids = 160;
998pub const ruby_method_ids_id_core_define_singleton_method: ruby_method_ids = 161;
999pub const ruby_method_ids_id_core_set_postexe: ruby_method_ids = 162;
1000pub const ruby_method_ids_id_core_hash_from_ary: ruby_method_ids = 163;
1001pub const ruby_method_ids_id_core_hash_merge_ary: ruby_method_ids = 164;
1002pub const ruby_method_ids_id_core_hash_merge_ptr: ruby_method_ids = 165;
1003pub const ruby_method_ids_id_core_hash_merge_kwd: ruby_method_ids = 166;
1004pub const ruby_method_ids_tPRESERVED_ID_END: ruby_method_ids = 167;
1005pub const ruby_method_ids_tFreeze: ruby_method_ids = 168;
1006pub const ruby_method_ids_tInspect: ruby_method_ids = 169;
1007pub const ruby_method_ids_tIntern: ruby_method_ids = 170;
1008pub const ruby_method_ids_tObject_id: ruby_method_ids = 171;
1009pub const ruby_method_ids_tConst_missing: ruby_method_ids = 172;
1010pub const ruby_method_ids_tMethodMissing: ruby_method_ids = 173;
1011pub const ruby_method_ids_tMethod_added: ruby_method_ids = 174;
1012pub const ruby_method_ids_tSingleton_method_added: ruby_method_ids = 175;
1013pub const ruby_method_ids_tMethod_removed: ruby_method_ids = 176;
1014pub const ruby_method_ids_tSingleton_method_removed: ruby_method_ids = 177;
1015pub const ruby_method_ids_tMethod_undefined: ruby_method_ids = 178;
1016pub const ruby_method_ids_tSingleton_method_undefined: ruby_method_ids = 179;
1017pub const ruby_method_ids_tLength: ruby_method_ids = 180;
1018pub const ruby_method_ids_tSize: ruby_method_ids = 181;
1019pub const ruby_method_ids_tGets: ruby_method_ids = 182;
1020pub const ruby_method_ids_tSucc: ruby_method_ids = 183;
1021pub const ruby_method_ids_tEach: ruby_method_ids = 184;
1022pub const ruby_method_ids_tProc: ruby_method_ids = 185;
1023pub const ruby_method_ids_tLambda: ruby_method_ids = 186;
1024pub const ruby_method_ids_tSend: ruby_method_ids = 187;
1025pub const ruby_method_ids_t__send__: ruby_method_ids = 188;
1026pub const ruby_method_ids_t__attached__: ruby_method_ids = 189;
1027pub const ruby_method_ids_tInitialize: ruby_method_ids = 190;
1028pub const ruby_method_ids_tInitialize_copy: ruby_method_ids = 191;
1029pub const ruby_method_ids_tInitialize_clone: ruby_method_ids = 192;
1030pub const ruby_method_ids_tInitialize_dup: ruby_method_ids = 193;
1031pub const ruby_method_ids_tTo_int: ruby_method_ids = 194;
1032pub const ruby_method_ids_tTo_ary: ruby_method_ids = 195;
1033pub const ruby_method_ids_tTo_str: ruby_method_ids = 196;
1034pub const ruby_method_ids_tTo_sym: ruby_method_ids = 197;
1035pub const ruby_method_ids_tTo_hash: ruby_method_ids = 198;
1036pub const ruby_method_ids_tTo_proc: ruby_method_ids = 199;
1037pub const ruby_method_ids_tTo_io: ruby_method_ids = 200;
1038pub const ruby_method_ids_tTo_a: ruby_method_ids = 201;
1039pub const ruby_method_ids_tTo_s: ruby_method_ids = 202;
1040pub const ruby_method_ids_tTo_i: ruby_method_ids = 203;
1041pub const ruby_method_ids_tBt: ruby_method_ids = 204;
1042pub const ruby_method_ids_tBt_locations: ruby_method_ids = 205;
1043pub const ruby_method_ids_tCall: ruby_method_ids = 206;
1044pub const ruby_method_ids_tMesg: ruby_method_ids = 207;
1045pub const ruby_method_ids_tException: ruby_method_ids = 208;
1046pub const ruby_method_ids_tUScore: ruby_method_ids = 209;
1047pub const ruby_method_ids_tNEXT_ID: ruby_method_ids = 210;
1048pub const ruby_method_ids_idFreeze: ruby_method_ids = 2689;
1049pub const ruby_method_ids_idInspect: ruby_method_ids = 2705;
1050pub const ruby_method_ids_idIntern: ruby_method_ids = 2721;
1051pub const ruby_method_ids_idObject_id: ruby_method_ids = 2737;
1052pub const ruby_method_ids_idConst_missing: ruby_method_ids = 2753;
1053pub const ruby_method_ids_idMethodMissing: ruby_method_ids = 2769;
1054pub const ruby_method_ids_idMethod_added: ruby_method_ids = 2785;
1055pub const ruby_method_ids_idSingleton_method_added: ruby_method_ids = 2801;
1056pub const ruby_method_ids_idMethod_removed: ruby_method_ids = 2817;
1057pub const ruby_method_ids_idSingleton_method_removed: ruby_method_ids = 2833;
1058pub const ruby_method_ids_idMethod_undefined: ruby_method_ids = 2849;
1059pub const ruby_method_ids_idSingleton_method_undefined: ruby_method_ids = 2865;
1060pub const ruby_method_ids_idLength: ruby_method_ids = 2881;
1061pub const ruby_method_ids_idSize: ruby_method_ids = 2897;
1062pub const ruby_method_ids_idGets: ruby_method_ids = 2913;
1063pub const ruby_method_ids_idSucc: ruby_method_ids = 2929;
1064pub const ruby_method_ids_idEach: ruby_method_ids = 2945;
1065pub const ruby_method_ids_idProc: ruby_method_ids = 2961;
1066pub const ruby_method_ids_idLambda: ruby_method_ids = 2977;
1067pub const ruby_method_ids_idSend: ruby_method_ids = 2993;
1068pub const ruby_method_ids_id__send__: ruby_method_ids = 3009;
1069pub const ruby_method_ids_id__attached__: ruby_method_ids = 3025;
1070pub const ruby_method_ids_idInitialize: ruby_method_ids = 3041;
1071pub const ruby_method_ids_idInitialize_copy: ruby_method_ids = 3057;
1072pub const ruby_method_ids_idInitialize_clone: ruby_method_ids = 3073;
1073pub const ruby_method_ids_idInitialize_dup: ruby_method_ids = 3089;
1074pub const ruby_method_ids_idTo_int: ruby_method_ids = 3105;
1075pub const ruby_method_ids_idTo_ary: ruby_method_ids = 3121;
1076pub const ruby_method_ids_idTo_str: ruby_method_ids = 3137;
1077pub const ruby_method_ids_idTo_sym: ruby_method_ids = 3153;
1078pub const ruby_method_ids_idTo_hash: ruby_method_ids = 3169;
1079pub const ruby_method_ids_idTo_proc: ruby_method_ids = 3185;
1080pub const ruby_method_ids_idTo_io: ruby_method_ids = 3201;
1081pub const ruby_method_ids_idTo_a: ruby_method_ids = 3217;
1082pub const ruby_method_ids_idTo_s: ruby_method_ids = 3233;
1083pub const ruby_method_ids_idTo_i: ruby_method_ids = 3249;
1084pub const ruby_method_ids_idBt: ruby_method_ids = 3265;
1085pub const ruby_method_ids_idBt_locations: ruby_method_ids = 3281;
1086pub const ruby_method_ids_idCall: ruby_method_ids = 3297;
1087pub const ruby_method_ids_idMesg: ruby_method_ids = 3313;
1088pub const ruby_method_ids_idException: ruby_method_ids = 3329;
1089pub const ruby_method_ids_idUScore: ruby_method_ids = 3345;
1090pub const ruby_method_ids_tLAST_OP_ID: ruby_method_ids = 166;
1091pub const ruby_method_ids_idLAST_OP_ID: ruby_method_ids = 10;
1092pub type ruby_method_ids = ::std::os::raw::c_uint;
1093pub type rb_subclass_entry_t = rb_subclass_entry;
1094#[repr(C)]
1095#[derive(Debug, Copy, Clone)]
1096pub struct rb_subclass_entry {
1097 pub klass: VALUE,
1098 pub next: *mut rb_subclass_entry_t,
1099}
1100pub type rb_serial_t = ::std::os::raw::c_ulonglong;
1101#[repr(C)]
1102#[derive(Debug, Copy, Clone)]
1103pub struct rb_classext_struct {
1104 pub iv_index_tbl: *mut st_table,
1105 pub iv_tbl: *mut st_table,
1106 pub const_tbl: *mut st_table,
1107 pub subclasses: *mut rb_subclass_entry_t,
1108 pub parent_subclasses: *mut *mut rb_subclass_entry_t,
1109 pub module_subclasses: *mut *mut rb_subclass_entry_t,
1110 pub class_serial: rb_serial_t,
1111 pub origin: VALUE,
1112 pub refined_class: VALUE,
1113 pub allocator: rb_alloc_func_t,
1114}
1115pub const rb_method_flag_t_NOEX_PUBLIC: rb_method_flag_t = 0;
1116pub const rb_method_flag_t_NOEX_NOSUPER: rb_method_flag_t = 1;
1117pub const rb_method_flag_t_NOEX_PRIVATE: rb_method_flag_t = 2;
1118pub const rb_method_flag_t_NOEX_PROTECTED: rb_method_flag_t = 4;
1119pub const rb_method_flag_t_NOEX_MASK: rb_method_flag_t = 6;
1120pub const rb_method_flag_t_NOEX_BASIC: rb_method_flag_t = 8;
1121pub const rb_method_flag_t_NOEX_UNDEF: rb_method_flag_t = 1;
1122pub const rb_method_flag_t_NOEX_MODFUNC: rb_method_flag_t = 18;
1123pub const rb_method_flag_t_NOEX_SUPER: rb_method_flag_t = 32;
1124pub const rb_method_flag_t_NOEX_VCALL: rb_method_flag_t = 64;
1125pub const rb_method_flag_t_NOEX_RESPONDS: rb_method_flag_t = 128;
1126pub const rb_method_flag_t_NOEX_BIT_WIDTH: rb_method_flag_t = 8;
1127pub const rb_method_flag_t_NOEX_SAFE_SHIFT_OFFSET: rb_method_flag_t = 8;
1128pub type rb_method_flag_t = ::std::os::raw::c_uint;
1129pub const rb_method_type_t_VM_METHOD_TYPE_ISEQ: rb_method_type_t = 0;
1130pub const rb_method_type_t_VM_METHOD_TYPE_CFUNC: rb_method_type_t = 1;
1131pub const rb_method_type_t_VM_METHOD_TYPE_ATTRSET: rb_method_type_t = 2;
1132pub const rb_method_type_t_VM_METHOD_TYPE_IVAR: rb_method_type_t = 3;
1133pub const rb_method_type_t_VM_METHOD_TYPE_BMETHOD: rb_method_type_t = 4;
1134pub const rb_method_type_t_VM_METHOD_TYPE_ZSUPER: rb_method_type_t = 5;
1135pub const rb_method_type_t_VM_METHOD_TYPE_UNDEF: rb_method_type_t = 6;
1136pub const rb_method_type_t_VM_METHOD_TYPE_NOTIMPLEMENTED: rb_method_type_t = 7;
1137pub const rb_method_type_t_VM_METHOD_TYPE_OPTIMIZED: rb_method_type_t = 8;
1138pub const rb_method_type_t_VM_METHOD_TYPE_MISSING: rb_method_type_t = 9;
1139pub const rb_method_type_t_VM_METHOD_TYPE_REFINED: rb_method_type_t = 10;
1140pub type rb_method_type_t = ::std::os::raw::c_uint;
1141#[repr(C)]
1142#[derive(Debug, Copy, Clone)]
1143pub struct rb_method_cfunc_struct {
1144 pub func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1145 pub invoker: ::std::option::Option<
1146 unsafe extern "C" fn(
1147 func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1148 recv: VALUE,
1149 argc: ::std::os::raw::c_int,
1150 argv: *const VALUE,
1151 ) -> VALUE,
1152 >,
1153 pub argc: ::std::os::raw::c_int,
1154}
1155pub type rb_method_cfunc_t = rb_method_cfunc_struct;
1156#[repr(C)]
1157#[derive(Debug, Copy, Clone)]
1158pub struct rb_method_attr_struct {
1159 pub id: ID,
1160 pub location: VALUE,
1161}
1162pub type rb_method_attr_t = rb_method_attr_struct;
1163pub type rb_iseq_t = rb_iseq_struct;
1164#[repr(C)]
1165#[derive(Copy, Clone)]
1166pub struct rb_method_definition_struct {
1167 pub type_: rb_method_type_t,
1168 pub alias_count: ::std::os::raw::c_int,
1169 pub original_id: ID,
1170 pub body: rb_method_definition_struct__bindgen_ty_1,
1171}
1172#[repr(C)]
1173#[derive(Copy, Clone)]
1174pub union rb_method_definition_struct__bindgen_ty_1 {
1175 pub iseq: *mut rb_iseq_t,
1176 pub cfunc: rb_method_cfunc_t,
1177 pub attr: rb_method_attr_t,
1178 pub proc_: VALUE,
1179 pub optimize_type: rb_method_definition_struct__bindgen_ty_1_method_optimized_type,
1180 pub orig_me: *mut rb_method_entry_struct,
1181}
1182pub 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 ;
1183pub 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 ;
1184pub const rb_method_definition_struct__bindgen_ty_1_method_optimized_type_OPTIMIZED_METHOD_TYPE__MAX : rb_method_definition_struct__bindgen_ty_1_method_optimized_type = 2 ;
1185pub type rb_method_definition_struct__bindgen_ty_1_method_optimized_type = ::std::os::raw::c_uint;
1186impl ::std::fmt::Debug for rb_method_definition_struct__bindgen_ty_1 {
1187 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1188 write!(f, "rb_method_definition_struct__bindgen_ty_1 {{ union }}")
1189 }
1190}
1191pub type rb_method_definition_t = rb_method_definition_struct;
1192#[repr(C)]
1193#[derive(Debug, Copy, Clone)]
1194pub struct rb_method_entry_struct {
1195 pub flag: rb_method_flag_t,
1196 pub mark: ::std::os::raw::c_char,
1197 pub def: *mut rb_method_definition_t,
1198 pub called_id: ID,
1199 pub klass: VALUE,
1200}
1201pub type rb_method_entry_t = rb_method_entry_struct;
1202#[repr(C)]
1203#[derive(Debug, Copy, Clone)]
1204pub struct unlinked_method_entry_list_entry {
1205 pub next: *mut unlinked_method_entry_list_entry,
1206 pub me: *mut rb_method_entry_t,
1207}
1208pub type rb_atomic_t = ::std::os::raw::c_uint;
1209#[repr(C)]
1210#[derive(Debug, Copy, Clone)]
1211pub struct list_node {
1212 pub next: *mut list_node,
1213 pub prev: *mut list_node,
1214}
1215#[repr(C)]
1216#[derive(Debug, Copy, Clone)]
1217pub struct list_head {
1218 pub n: list_node,
1219}
1220pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
1221pub type rb_nativethread_id_t = pthread_t;
1222pub type rb_nativethread_lock_t = pthread_mutex_t;
1223#[repr(C)]
1224#[derive(Copy, Clone)]
1225pub struct rb_thread_cond_struct {
1226 pub cond: pthread_cond_t,
1227 pub clockid: clockid_t,
1228}
1229impl ::std::fmt::Debug for rb_thread_cond_struct {
1230 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1231 write!(
1232 f,
1233 "rb_thread_cond_struct {{ cond: {:?}, clockid: {:?} }}",
1234 self.cond, self.clockid
1235 )
1236 }
1237}
1238pub type rb_nativethread_cond_t = rb_thread_cond_struct;
1239#[repr(C)]
1240#[derive(Copy, Clone)]
1241pub struct native_thread_data_struct {
1242 pub signal_thread_list: *mut ::std::os::raw::c_void,
1243 pub sleep_cond: rb_nativethread_cond_t,
1244}
1245impl ::std::fmt::Debug for native_thread_data_struct {
1246 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1247 write!(
1248 f,
1249 "native_thread_data_struct {{ signal_thread_list: {:?}, sleep_cond: {:?} }}",
1250 self.signal_thread_list, self.sleep_cond
1251 )
1252 }
1253}
1254pub type native_thread_data_t = native_thread_data_struct;
1255#[repr(C)]
1256#[derive(Copy, Clone)]
1257pub struct rb_global_vm_lock_struct {
1258 pub acquired: ::std::os::raw::c_ulong,
1259 pub lock: rb_nativethread_lock_t,
1260 pub waiting: ::std::os::raw::c_ulong,
1261 pub cond: rb_nativethread_cond_t,
1262 pub switch_cond: rb_nativethread_cond_t,
1263 pub switch_wait_cond: rb_nativethread_cond_t,
1264 pub need_yield: ::std::os::raw::c_int,
1265 pub wait_yield: ::std::os::raw::c_int,
1266}
1267impl ::std::fmt::Debug for rb_global_vm_lock_struct {
1268 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1269 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)
1270 }
1271}
1272pub type rb_global_vm_lock_t = rb_global_vm_lock_struct;
1273#[repr(C)]
1274#[derive(Debug, Copy, Clone)]
1275pub struct __jmp_buf_tag {
1276 pub __jmpbuf: __jmp_buf,
1277 pub __mask_was_saved: ::std::os::raw::c_int,
1278 pub __saved_mask: __sigset_t,
1279}
1280pub type jmp_buf = [__jmp_buf_tag; 1usize];
1281pub type rb_num_t = usize;
1282#[repr(C)]
1283#[derive(Debug)]
1284pub struct iseq_compile_data_ensure_node_stack {
1285 _unused: [u8; 0],
1286}
1287pub type rb_compile_option_t = rb_compile_option_struct;
1288#[repr(C)]
1289#[derive(Copy, Clone)]
1290pub struct iseq_inline_cache_entry {
1291 pub ic_serial: rb_serial_t,
1292 pub ic_value: iseq_inline_cache_entry__bindgen_ty_1,
1293}
1294#[repr(C)]
1295#[derive(Copy, Clone)]
1296pub union iseq_inline_cache_entry__bindgen_ty_1 {
1297 pub index: usize,
1298 pub value: VALUE,
1299}
1300impl ::std::fmt::Debug for iseq_inline_cache_entry__bindgen_ty_1 {
1301 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1302 write!(f, "iseq_inline_cache_entry__bindgen_ty_1 {{ union }}")
1303 }
1304}
1305impl ::std::fmt::Debug for iseq_inline_cache_entry {
1306 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1307 write!(
1308 f,
1309 "iseq_inline_cache_entry {{ ic_serial: {:?}, ic_value: {:?} }}",
1310 self.ic_serial, self.ic_value
1311 )
1312 }
1313}
1314#[repr(C)]
1315#[derive(Copy, Clone)]
1316pub union iseq_inline_storage_entry {
1317 pub once: iseq_inline_storage_entry__bindgen_ty_1,
1318 pub cache: iseq_inline_cache_entry,
1319}
1320#[repr(C)]
1321#[derive(Debug, Copy, Clone)]
1322pub struct iseq_inline_storage_entry__bindgen_ty_1 {
1323 pub running_thread: *mut rb_thread_struct,
1324 pub value: VALUE,
1325}
1326impl ::std::fmt::Debug for iseq_inline_storage_entry {
1327 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1328 write!(f, "iseq_inline_storage_entry {{ union }}")
1329 }
1330}
1331#[repr(C)]
1332#[derive(Debug, Copy, Clone)]
1333pub struct rb_call_info_kw_arg_struct {
1334 pub keyword_len: ::std::os::raw::c_int,
1335 pub keywords: [VALUE; 1usize],
1336}
1337pub type rb_call_info_kw_arg_t = rb_call_info_kw_arg_struct;
1338#[repr(C)]
1339#[derive(Copy, Clone)]
1340pub struct rb_call_info_struct {
1341 pub mid: ID,
1342 pub flag: ::std::os::raw::c_uint,
1343 pub orig_argc: ::std::os::raw::c_int,
1344 pub blockiseq: *mut rb_iseq_t,
1345 pub kw_arg: *mut rb_call_info_kw_arg_t,
1346 pub method_state: rb_serial_t,
1347 pub class_serial: rb_serial_t,
1348 pub klass: VALUE,
1349 pub me: *const rb_method_entry_t,
1350 pub defined_class: VALUE,
1351 pub blockptr: *mut rb_block_struct,
1352 pub recv: VALUE,
1353 pub argc: ::std::os::raw::c_int,
1354 pub aux: rb_call_info_struct__bindgen_ty_1,
1355 pub call: ::std::option::Option<
1356 unsafe extern "C" fn(
1357 th: *mut rb_thread_struct,
1358 cfp: *mut rb_control_frame_struct,
1359 ci: *mut rb_call_info_struct,
1360 ) -> VALUE,
1361 >,
1362}
1363#[repr(C)]
1364#[derive(Copy, Clone)]
1365pub union rb_call_info_struct__bindgen_ty_1 {
1366 pub opt_pc: ::std::os::raw::c_int,
1367 pub index: ::std::os::raw::c_int,
1368 pub missing_reason: ::std::os::raw::c_int,
1369 pub inc_sp: ::std::os::raw::c_int,
1370}
1371impl ::std::fmt::Debug for rb_call_info_struct__bindgen_ty_1 {
1372 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1373 write!(f, "rb_call_info_struct__bindgen_ty_1 {{ union }}")
1374 }
1375}
1376impl ::std::fmt::Debug for rb_call_info_struct {
1377 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1378 write ! (f , "rb_call_info_struct {{ mid: {:?}, flag: {:?}, orig_argc: {:?}, blockiseq: {:?}, kw_arg: {:?}, method_state: {:?}, class_serial: {:?}, klass: {:?}, me: {:?}, defined_class: {:?}, blockptr: {:?}, recv: {:?}, argc: {:?}, aux: {:?}, call: {:?} }}" , self . mid , self . flag , self . orig_argc , self . blockiseq , self . kw_arg , self . method_state , self . class_serial , self . klass , self . me , self . defined_class , self . blockptr , self . recv , self . argc , self . aux , self . call)
1379 }
1380}
1381pub type rb_call_info_t = rb_call_info_struct;
1382#[repr(C)]
1383#[derive(Debug, Copy, Clone)]
1384pub struct rb_iseq_location_struct {
1385 pub path: VALUE,
1386 pub absolute_path: VALUE,
1387 pub base_label: VALUE,
1388 pub label: VALUE,
1389 pub first_lineno: VALUE,
1390}
1391pub type rb_iseq_location_t = rb_iseq_location_struct;
1392#[repr(C)]
1393#[derive(Debug, Copy, Clone)]
1394pub struct rb_iseq_struct {
1395 pub type_: rb_iseq_struct_iseq_type,
1396 pub stack_max: ::std::os::raw::c_int,
1397 pub location: rb_iseq_location_t,
1398 pub iseq_encoded: *mut VALUE,
1399 pub iseq_size: ::std::os::raw::c_uint,
1400 pub line_info_size: ::std::os::raw::c_uint,
1401 pub mark_ary: VALUE,
1402 pub coverage: VALUE,
1403 pub line_info_table: *mut iseq_line_info_entry,
1404 pub local_table: *mut ID,
1405 pub local_table_size: ::std::os::raw::c_int,
1406 pub local_size: ::std::os::raw::c_int,
1407 pub is_entries: *mut iseq_inline_storage_entry,
1408 pub is_size: ::std::os::raw::c_int,
1409 pub callinfo_size: ::std::os::raw::c_int,
1410 pub callinfo_entries: *mut rb_call_info_t,
1411 pub param: rb_iseq_struct__bindgen_ty_1,
1412 pub catch_table: *mut iseq_catch_table,
1413 pub parent_iseq: *mut rb_iseq_struct,
1414 pub local_iseq: *mut rb_iseq_struct,
1415 pub self_: VALUE,
1416 pub orig: VALUE,
1417 pub cref_stack: *mut NODE,
1418 pub klass: VALUE,
1419 pub defined_method_id: ID,
1420 pub flip_cnt: rb_num_t,
1421 pub compile_data: *mut iseq_compile_data,
1422 pub iseq: *mut VALUE,
1423}
1424pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_TOP: rb_iseq_struct_iseq_type = 0;
1425pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_METHOD: rb_iseq_struct_iseq_type = 1;
1426pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_BLOCK: rb_iseq_struct_iseq_type = 2;
1427pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_CLASS: rb_iseq_struct_iseq_type = 3;
1428pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_RESCUE: rb_iseq_struct_iseq_type = 4;
1429pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_ENSURE: rb_iseq_struct_iseq_type = 5;
1430pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_EVAL: rb_iseq_struct_iseq_type = 6;
1431pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_MAIN: rb_iseq_struct_iseq_type = 7;
1432pub const rb_iseq_struct_iseq_type_ISEQ_TYPE_DEFINED_GUARD: rb_iseq_struct_iseq_type = 8;
1433pub type rb_iseq_struct_iseq_type = ::std::os::raw::c_uint;
1434#[repr(C)]
1435#[derive(Debug, Copy, Clone)]
1436pub struct rb_iseq_struct__bindgen_ty_1 {
1437 pub flags: rb_iseq_struct__bindgen_ty_1__bindgen_ty_1,
1438 pub size: ::std::os::raw::c_int,
1439 pub lead_num: ::std::os::raw::c_int,
1440 pub opt_num: ::std::os::raw::c_int,
1441 pub rest_start: ::std::os::raw::c_int,
1442 pub post_start: ::std::os::raw::c_int,
1443 pub post_num: ::std::os::raw::c_int,
1444 pub block_start: ::std::os::raw::c_int,
1445 pub opt_table: *mut VALUE,
1446 pub keyword: *mut rb_iseq_struct__bindgen_ty_1_rb_iseq_param_keyword,
1447}
1448#[repr(C)]
1449#[derive(Debug, Copy, Clone)]
1450pub struct rb_iseq_struct__bindgen_ty_1__bindgen_ty_1 {
1451 pub _bindgen_align: [u32; 0],
1452 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1453 pub __bindgen_padding_0: [u8; 3usize],
1454}
1455impl rb_iseq_struct__bindgen_ty_1__bindgen_ty_1 {
1456 #[inline]
1457 #[allow(unnecessary_transmutes)]
1458 pub fn has_lead(&self) -> ::std::os::raw::c_uint {
1459 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<0usize, 1u8>() as u32) }
1460 }
1461 #[inline]
1462 #[allow(unnecessary_transmutes)]
1463 pub fn set_has_lead(&mut self, val: ::std::os::raw::c_uint) {
1464 unsafe {
1465 let val: u32 = ::std::mem::transmute(val);
1466 self._bitfield_1.set_const::<0usize, 1u8>(val as u64)
1467 }
1468 }
1469 #[inline]
1470 #[allow(unnecessary_transmutes)]
1471 pub unsafe fn has_lead_raw(this: *const Self) -> ::std::os::raw::c_uint {
1472 unsafe {
1473 ::std::mem::transmute(
1474 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<0usize, 1u8>(
1475 ::std::ptr::addr_of!((*this)._bitfield_1),
1476 ) as u32,
1477 )
1478 }
1479 }
1480 #[inline]
1481 #[allow(unnecessary_transmutes)]
1482 pub unsafe fn set_has_lead_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1483 unsafe {
1484 let val: u32 = ::std::mem::transmute(val);
1485 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<0usize, 1u8>(
1486 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1487 val as u64,
1488 )
1489 }
1490 }
1491 #[inline]
1492 #[allow(unnecessary_transmutes)]
1493 pub fn has_opt(&self) -> ::std::os::raw::c_uint {
1494 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<1usize, 1u8>() as u32) }
1495 }
1496 #[inline]
1497 #[allow(unnecessary_transmutes)]
1498 pub fn set_has_opt(&mut self, val: ::std::os::raw::c_uint) {
1499 unsafe {
1500 let val: u32 = ::std::mem::transmute(val);
1501 self._bitfield_1.set_const::<1usize, 1u8>(val as u64)
1502 }
1503 }
1504 #[inline]
1505 #[allow(unnecessary_transmutes)]
1506 pub unsafe fn has_opt_raw(this: *const Self) -> ::std::os::raw::c_uint {
1507 unsafe {
1508 ::std::mem::transmute(
1509 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<1usize, 1u8>(
1510 ::std::ptr::addr_of!((*this)._bitfield_1),
1511 ) as u32,
1512 )
1513 }
1514 }
1515 #[inline]
1516 #[allow(unnecessary_transmutes)]
1517 pub unsafe fn set_has_opt_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1518 unsafe {
1519 let val: u32 = ::std::mem::transmute(val);
1520 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<1usize, 1u8>(
1521 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1522 val as u64,
1523 )
1524 }
1525 }
1526 #[inline]
1527 #[allow(unnecessary_transmutes)]
1528 pub fn has_rest(&self) -> ::std::os::raw::c_uint {
1529 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<2usize, 1u8>() as u32) }
1530 }
1531 #[inline]
1532 #[allow(unnecessary_transmutes)]
1533 pub fn set_has_rest(&mut self, val: ::std::os::raw::c_uint) {
1534 unsafe {
1535 let val: u32 = ::std::mem::transmute(val);
1536 self._bitfield_1.set_const::<2usize, 1u8>(val as u64)
1537 }
1538 }
1539 #[inline]
1540 #[allow(unnecessary_transmutes)]
1541 pub unsafe fn has_rest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1542 unsafe {
1543 ::std::mem::transmute(
1544 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<2usize, 1u8>(
1545 ::std::ptr::addr_of!((*this)._bitfield_1),
1546 ) as u32,
1547 )
1548 }
1549 }
1550 #[inline]
1551 #[allow(unnecessary_transmutes)]
1552 pub unsafe fn set_has_rest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1553 unsafe {
1554 let val: u32 = ::std::mem::transmute(val);
1555 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<2usize, 1u8>(
1556 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1557 val as u64,
1558 )
1559 }
1560 }
1561 #[inline]
1562 #[allow(unnecessary_transmutes)]
1563 pub fn has_post(&self) -> ::std::os::raw::c_uint {
1564 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<3usize, 1u8>() as u32) }
1565 }
1566 #[inline]
1567 #[allow(unnecessary_transmutes)]
1568 pub fn set_has_post(&mut self, val: ::std::os::raw::c_uint) {
1569 unsafe {
1570 let val: u32 = ::std::mem::transmute(val);
1571 self._bitfield_1.set_const::<3usize, 1u8>(val as u64)
1572 }
1573 }
1574 #[inline]
1575 #[allow(unnecessary_transmutes)]
1576 pub unsafe fn has_post_raw(this: *const Self) -> ::std::os::raw::c_uint {
1577 unsafe {
1578 ::std::mem::transmute(
1579 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<3usize, 1u8>(
1580 ::std::ptr::addr_of!((*this)._bitfield_1),
1581 ) as u32,
1582 )
1583 }
1584 }
1585 #[inline]
1586 #[allow(unnecessary_transmutes)]
1587 pub unsafe fn set_has_post_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1588 unsafe {
1589 let val: u32 = ::std::mem::transmute(val);
1590 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<3usize, 1u8>(
1591 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1592 val as u64,
1593 )
1594 }
1595 }
1596 #[inline]
1597 #[allow(unnecessary_transmutes)]
1598 pub fn has_kw(&self) -> ::std::os::raw::c_uint {
1599 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<4usize, 1u8>() as u32) }
1600 }
1601 #[inline]
1602 #[allow(unnecessary_transmutes)]
1603 pub fn set_has_kw(&mut self, val: ::std::os::raw::c_uint) {
1604 unsafe {
1605 let val: u32 = ::std::mem::transmute(val);
1606 self._bitfield_1.set_const::<4usize, 1u8>(val as u64)
1607 }
1608 }
1609 #[inline]
1610 #[allow(unnecessary_transmutes)]
1611 pub unsafe fn has_kw_raw(this: *const Self) -> ::std::os::raw::c_uint {
1612 unsafe {
1613 ::std::mem::transmute(
1614 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<4usize, 1u8>(
1615 ::std::ptr::addr_of!((*this)._bitfield_1),
1616 ) as u32,
1617 )
1618 }
1619 }
1620 #[inline]
1621 #[allow(unnecessary_transmutes)]
1622 pub unsafe fn set_has_kw_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1623 unsafe {
1624 let val: u32 = ::std::mem::transmute(val);
1625 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<4usize, 1u8>(
1626 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1627 val as u64,
1628 )
1629 }
1630 }
1631 #[inline]
1632 #[allow(unnecessary_transmutes)]
1633 pub fn has_kwrest(&self) -> ::std::os::raw::c_uint {
1634 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<5usize, 1u8>() as u32) }
1635 }
1636 #[inline]
1637 #[allow(unnecessary_transmutes)]
1638 pub fn set_has_kwrest(&mut self, val: ::std::os::raw::c_uint) {
1639 unsafe {
1640 let val: u32 = ::std::mem::transmute(val);
1641 self._bitfield_1.set_const::<5usize, 1u8>(val as u64)
1642 }
1643 }
1644 #[inline]
1645 #[allow(unnecessary_transmutes)]
1646 pub unsafe fn has_kwrest_raw(this: *const Self) -> ::std::os::raw::c_uint {
1647 unsafe {
1648 ::std::mem::transmute(
1649 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<5usize, 1u8>(
1650 ::std::ptr::addr_of!((*this)._bitfield_1),
1651 ) as u32,
1652 )
1653 }
1654 }
1655 #[inline]
1656 #[allow(unnecessary_transmutes)]
1657 pub unsafe fn set_has_kwrest_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1658 unsafe {
1659 let val: u32 = ::std::mem::transmute(val);
1660 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<5usize, 1u8>(
1661 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1662 val as u64,
1663 )
1664 }
1665 }
1666 #[inline]
1667 #[allow(unnecessary_transmutes)]
1668 pub fn has_block(&self) -> ::std::os::raw::c_uint {
1669 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<6usize, 1u8>() as u32) }
1670 }
1671 #[inline]
1672 #[allow(unnecessary_transmutes)]
1673 pub fn set_has_block(&mut self, val: ::std::os::raw::c_uint) {
1674 unsafe {
1675 let val: u32 = ::std::mem::transmute(val);
1676 self._bitfield_1.set_const::<6usize, 1u8>(val as u64)
1677 }
1678 }
1679 #[inline]
1680 #[allow(unnecessary_transmutes)]
1681 pub unsafe fn has_block_raw(this: *const Self) -> ::std::os::raw::c_uint {
1682 unsafe {
1683 ::std::mem::transmute(
1684 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<6usize, 1u8>(
1685 ::std::ptr::addr_of!((*this)._bitfield_1),
1686 ) as u32,
1687 )
1688 }
1689 }
1690 #[inline]
1691 #[allow(unnecessary_transmutes)]
1692 pub unsafe fn set_has_block_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1693 unsafe {
1694 let val: u32 = ::std::mem::transmute(val);
1695 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<6usize, 1u8>(
1696 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1697 val as u64,
1698 )
1699 }
1700 }
1701 #[inline]
1702 #[allow(unnecessary_transmutes)]
1703 pub fn ambiguous_param0(&self) -> ::std::os::raw::c_uint {
1704 unsafe { ::std::mem::transmute(self._bitfield_1.get_const::<7usize, 1u8>() as u32) }
1705 }
1706 #[inline]
1707 #[allow(unnecessary_transmutes)]
1708 pub fn set_ambiguous_param0(&mut self, val: ::std::os::raw::c_uint) {
1709 unsafe {
1710 let val: u32 = ::std::mem::transmute(val);
1711 self._bitfield_1.set_const::<7usize, 1u8>(val as u64)
1712 }
1713 }
1714 #[inline]
1715 #[allow(unnecessary_transmutes)]
1716 pub unsafe fn ambiguous_param0_raw(this: *const Self) -> ::std::os::raw::c_uint {
1717 unsafe {
1718 ::std::mem::transmute(
1719 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get_const::<7usize, 1u8>(
1720 ::std::ptr::addr_of!((*this)._bitfield_1),
1721 ) as u32,
1722 )
1723 }
1724 }
1725 #[inline]
1726 #[allow(unnecessary_transmutes)]
1727 pub unsafe fn set_ambiguous_param0_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1728 unsafe {
1729 let val: u32 = ::std::mem::transmute(val);
1730 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set_const::<7usize, 1u8>(
1731 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1732 val as u64,
1733 )
1734 }
1735 }
1736 #[inline]
1737 #[allow(unnecessary_transmutes)]
1738 pub fn new_bitfield_1(
1739 has_lead: ::std::os::raw::c_uint,
1740 has_opt: ::std::os::raw::c_uint,
1741 has_rest: ::std::os::raw::c_uint,
1742 has_post: ::std::os::raw::c_uint,
1743 has_kw: ::std::os::raw::c_uint,
1744 has_kwrest: ::std::os::raw::c_uint,
1745 has_block: ::std::os::raw::c_uint,
1746 ambiguous_param0: ::std::os::raw::c_uint,
1747 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1748 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1749 __bindgen_bitfield_unit.set_const::<0usize, 1u8>({
1750 let has_lead: u32 = unsafe { ::std::mem::transmute(has_lead) };
1751 has_lead as u64
1752 });
1753 __bindgen_bitfield_unit.set_const::<1usize, 1u8>({
1754 let has_opt: u32 = unsafe { ::std::mem::transmute(has_opt) };
1755 has_opt as u64
1756 });
1757 __bindgen_bitfield_unit.set_const::<2usize, 1u8>({
1758 let has_rest: u32 = unsafe { ::std::mem::transmute(has_rest) };
1759 has_rest as u64
1760 });
1761 __bindgen_bitfield_unit.set_const::<3usize, 1u8>({
1762 let has_post: u32 = unsafe { ::std::mem::transmute(has_post) };
1763 has_post as u64
1764 });
1765 __bindgen_bitfield_unit.set_const::<4usize, 1u8>({
1766 let has_kw: u32 = unsafe { ::std::mem::transmute(has_kw) };
1767 has_kw as u64
1768 });
1769 __bindgen_bitfield_unit.set_const::<5usize, 1u8>({
1770 let has_kwrest: u32 = unsafe { ::std::mem::transmute(has_kwrest) };
1771 has_kwrest as u64
1772 });
1773 __bindgen_bitfield_unit.set_const::<6usize, 1u8>({
1774 let has_block: u32 = unsafe { ::std::mem::transmute(has_block) };
1775 has_block as u64
1776 });
1777 __bindgen_bitfield_unit.set_const::<7usize, 1u8>({
1778 let ambiguous_param0: u32 = unsafe { ::std::mem::transmute(ambiguous_param0) };
1779 ambiguous_param0 as u64
1780 });
1781 __bindgen_bitfield_unit
1782 }
1783}
1784#[repr(C)]
1785#[derive(Debug, Copy, Clone)]
1786pub struct rb_iseq_struct__bindgen_ty_1_rb_iseq_param_keyword {
1787 pub num: ::std::os::raw::c_int,
1788 pub required_num: ::std::os::raw::c_int,
1789 pub bits_start: ::std::os::raw::c_int,
1790 pub rest_start: ::std::os::raw::c_int,
1791 pub table: *mut ID,
1792 pub default_values: *mut VALUE,
1793}
1794#[repr(C)]
1795#[derive(Debug)]
1796pub struct rb_objspace {
1797 _unused: [u8; 0],
1798}
1799#[repr(C)]
1800#[derive(Debug, Copy, Clone)]
1801pub struct rb_hook_list_struct {
1802 pub hooks: *mut rb_event_hook_struct,
1803 pub events: rb_event_flag_t,
1804 pub need_clean: ::std::os::raw::c_int,
1805}
1806pub type rb_hook_list_t = rb_hook_list_struct;
1807#[repr(C)]
1808#[derive(Copy, Clone)]
1809pub struct rb_vm_struct {
1810 pub self_: VALUE,
1811 pub gvl: rb_global_vm_lock_t,
1812 pub thread_destruct_lock: rb_nativethread_lock_t,
1813 pub main_thread: *mut rb_thread_struct,
1814 pub running_thread: *mut rb_thread_struct,
1815 pub living_threads: list_head,
1816 pub living_thread_num: usize,
1817 pub thgroup_default: VALUE,
1818 pub running: ::std::os::raw::c_int,
1819 pub thread_abort_on_exception: ::std::os::raw::c_int,
1820 pub trace_running: ::std::os::raw::c_int,
1821 pub sleeper: ::std::os::raw::c_int,
1822 pub mark_object_ary: VALUE,
1823 pub special_exceptions: [VALUE; 4usize],
1824 pub top_self: VALUE,
1825 pub load_path: VALUE,
1826 pub load_path_snapshot: VALUE,
1827 pub load_path_check_cache: VALUE,
1828 pub expanded_load_path: VALUE,
1829 pub loaded_features: VALUE,
1830 pub loaded_features_snapshot: VALUE,
1831 pub loaded_features_index: *mut st_table,
1832 pub loading_table: *mut st_table,
1833 pub trap_list: [rb_vm_struct__bindgen_ty_1; 65usize],
1834 pub event_hooks: rb_hook_list_t,
1835 pub ensure_rollback_table: *mut st_table,
1836 pub postponed_job_buffer: *mut rb_postponed_job_struct,
1837 pub postponed_job_index: ::std::os::raw::c_int,
1838 pub src_encoding_index: ::std::os::raw::c_int,
1839 pub verbose: VALUE,
1840 pub debug: VALUE,
1841 pub orig_progname: VALUE,
1842 pub progname: VALUE,
1843 pub coverages: VALUE,
1844 pub unlinked_method_entry_list: *mut unlinked_method_entry_list_entry,
1845 pub defined_module_hash: VALUE,
1846 pub objspace: *mut rb_objspace,
1847 pub at_exit: RArray,
1848 pub defined_strings: *mut VALUE,
1849 pub frozen_strings: *mut st_table,
1850 pub default_params: rb_vm_struct__bindgen_ty_2,
1851 pub redefined_flag: [::std::os::raw::c_short; 22usize],
1852}
1853#[repr(C)]
1854#[derive(Debug, Copy, Clone)]
1855pub struct rb_vm_struct__bindgen_ty_1 {
1856 pub cmd: VALUE,
1857 pub safe: ::std::os::raw::c_int,
1858}
1859#[repr(C)]
1860#[derive(Debug, Copy, Clone)]
1861pub struct rb_vm_struct__bindgen_ty_2 {
1862 pub thread_vm_stack_size: usize,
1863 pub thread_machine_stack_size: usize,
1864 pub fiber_vm_stack_size: usize,
1865 pub fiber_machine_stack_size: usize,
1866}
1867impl ::std::fmt::Debug for rb_vm_struct {
1868 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1869 write ! (f , "rb_vm_struct {{ self: {:?}, gvl: {:?}, thread_destruct_lock: {:?}, main_thread: {:?}, running_thread: {:?}, living_threads: {:?}, thgroup_default: {:?}, running: {:?}, thread_abort_on_exception: {:?}, trace_running: {:?}, sleeper: {:?}, mark_object_ary: {:?}, special_exceptions: {:?}, top_self: {:?}, load_path: {:?}, load_path_snapshot: {:?}, load_path_check_cache: {:?}, expanded_load_path: {:?}, loaded_features: {:?}, loaded_features_snapshot: {:?}, loaded_features_index: {:?}, loading_table: {:?}, trap_list: {:?}, event_hooks: {:?}, ensure_rollback_table: {:?}, postponed_job_buffer: {:?}, postponed_job_index: {:?}, src_encoding_index: {:?}, verbose: {:?}, debug: {:?}, orig_progname: {:?}, progname: {:?}, coverages: {:?}, unlinked_method_entry_list: {:?}, defined_module_hash: {:?}, objspace: {:?}, at_exit: {:?}, defined_strings: {:?}, frozen_strings: {:?}, default_params: {:?}, redefined_flag: {:?} }}" , self . self_ , self . gvl , self . thread_destruct_lock , self . main_thread , self . running_thread , self . living_threads , self . thgroup_default , self . running , self . thread_abort_on_exception , self . trace_running , self . sleeper , self . mark_object_ary , self . special_exceptions , self . top_self , self . load_path , self . load_path_snapshot , self . load_path_check_cache , self . expanded_load_path , self . loaded_features , self . loaded_features_snapshot , self . loaded_features_index , self . loading_table , self . trap_list , self . event_hooks , self . ensure_rollback_table , self . postponed_job_buffer , self . postponed_job_index , self . src_encoding_index , self . verbose , self . debug , self . orig_progname , self . progname , self . coverages , self . unlinked_method_entry_list , self . defined_module_hash , self . objspace , self . at_exit , self . defined_strings , self . frozen_strings , self . default_params , self . redefined_flag)
1870 }
1871}
1872pub type rb_vm_t = rb_vm_struct;
1873#[repr(C)]
1874#[derive(Debug, Copy, Clone)]
1875pub struct rb_control_frame_struct {
1876 pub pc: *mut VALUE,
1877 pub sp: *mut VALUE,
1878 pub iseq: *mut rb_iseq_t,
1879 pub flag: VALUE,
1880 pub self_: VALUE,
1881 pub klass: VALUE,
1882 pub ep: *mut VALUE,
1883 pub block_iseq: *mut rb_iseq_t,
1884 pub proc_: VALUE,
1885 pub me: *const rb_method_entry_t,
1886}
1887pub type rb_control_frame_t = rb_control_frame_struct;
1888#[repr(C)]
1889#[derive(Debug, Copy, Clone)]
1890pub struct rb_block_struct {
1891 pub self_: VALUE,
1892 pub klass: VALUE,
1893 pub ep: *mut VALUE,
1894 pub iseq: *mut rb_iseq_t,
1895 pub proc_: VALUE,
1896}
1897pub type rb_block_t = rb_block_struct;
1898pub const rb_thread_status_THREAD_RUNNABLE: rb_thread_status = 0;
1899pub const rb_thread_status_THREAD_STOPPED: rb_thread_status = 1;
1900pub const rb_thread_status_THREAD_STOPPED_FOREVER: rb_thread_status = 2;
1901pub const rb_thread_status_THREAD_KILLED: rb_thread_status = 3;
1902pub type rb_thread_status = ::std::os::raw::c_uint;
1903pub type rb_jmpbuf_t = jmp_buf;
1904#[repr(C)]
1905#[derive(Debug, Copy, Clone)]
1906pub struct rb_vm_tag {
1907 pub tag: VALUE,
1908 pub retval: VALUE,
1909 pub buf: rb_jmpbuf_t,
1910 pub prev: *mut rb_vm_tag,
1911}
1912#[repr(C)]
1913#[derive(Debug, Copy, Clone)]
1914pub struct rb_vm_protect_tag {
1915 pub prev: *mut rb_vm_protect_tag,
1916}
1917#[repr(C)]
1918#[derive(Debug, Copy, Clone)]
1919pub struct rb_unblock_callback {
1920 pub func: rb_unblock_function_t,
1921 pub arg: *mut ::std::os::raw::c_void,
1922}
1923#[repr(C)]
1924#[derive(Debug)]
1925pub struct rb_mutex_struct {
1926 _unused: [u8; 0],
1927}
1928#[repr(C)]
1929#[derive(Debug, Copy, Clone)]
1930pub struct rb_thread_list_struct {
1931 pub next: *mut rb_thread_list_struct,
1932 pub th: *mut rb_thread_struct,
1933}
1934pub type rb_thread_list_t = rb_thread_list_struct;
1935#[repr(C)]
1936#[derive(Debug, Copy, Clone)]
1937pub struct rb_ensure_entry {
1938 pub marker: VALUE,
1939 pub e_proc: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
1940 pub data2: VALUE,
1941}
1942#[repr(C)]
1943#[derive(Debug, Copy, Clone)]
1944pub struct rb_ensure_list {
1945 pub next: *mut rb_ensure_list,
1946 pub entry: rb_ensure_entry,
1947}
1948pub type rb_ensure_list_t = rb_ensure_list;
1949#[repr(C)]
1950#[derive(Debug)]
1951pub struct rb_fiber_struct {
1952 _unused: [u8; 0],
1953}
1954pub type rb_fiber_t = rb_fiber_struct;
1955#[repr(C)]
1956#[derive(Copy, Clone)]
1957pub struct rb_thread_struct {
1958 pub vmlt_node: list_node,
1959 pub self_: VALUE,
1960 pub vm: *mut rb_vm_t,
1961 pub stack: *mut VALUE,
1962 pub stack_size: usize,
1963 pub cfp: *mut rb_control_frame_t,
1964 pub safe_level: ::std::os::raw::c_int,
1965 pub raised_flag: ::std::os::raw::c_int,
1966 pub last_status: VALUE,
1967 pub state: ::std::os::raw::c_int,
1968 pub waiting_fd: ::std::os::raw::c_int,
1969 pub passed_block: *const rb_block_t,
1970 pub passed_bmethod_me: *const rb_method_entry_t,
1971 pub passed_ci: *mut rb_call_info_t,
1972 pub top_self: VALUE,
1973 pub top_wrapper: VALUE,
1974 pub base_block: *mut rb_block_t,
1975 pub root_lep: *mut VALUE,
1976 pub root_svar: VALUE,
1977 pub thread_id: rb_nativethread_id_t,
1978 pub status: rb_thread_status,
1979 pub to_kill: ::std::os::raw::c_int,
1980 pub priority: ::std::os::raw::c_int,
1981 pub mark_stack_len: ::std::os::raw::c_int,
1982 pub native_thread_data: native_thread_data_t,
1983 pub blocking_region_buffer: *mut ::std::os::raw::c_void,
1984 pub thgroup: VALUE,
1985 pub value: VALUE,
1986 pub errinfo: VALUE,
1987 pub pending_interrupt_queue: VALUE,
1988 pub pending_interrupt_mask_stack: VALUE,
1989 pub pending_interrupt_queue_checked: ::std::os::raw::c_int,
1990 pub interrupt_flag: rb_atomic_t,
1991 pub interrupt_mask: ::std::os::raw::c_ulong,
1992 pub interrupt_lock: rb_nativethread_lock_t,
1993 pub interrupt_cond: rb_nativethread_cond_t,
1994 pub unblock: rb_unblock_callback,
1995 pub locking_mutex: VALUE,
1996 pub keeping_mutexes: *mut rb_mutex_struct,
1997 pub tag: *mut rb_vm_tag,
1998 pub protect_tag: *mut rb_vm_protect_tag,
1999 pub parse_in_eval: ::std::os::raw::c_int,
2000 pub mild_compile_error: ::std::os::raw::c_int,
2001 pub local_storage: *mut st_table,
2002 pub local_storage_recursive_hash: VALUE,
2003 pub local_storage_recursive_hash_for_trace: VALUE,
2004 pub join_list: *mut rb_thread_list_t,
2005 pub first_proc: VALUE,
2006 pub first_args: VALUE,
2007 pub first_func: ::std::option::Option<unsafe extern "C" fn() -> VALUE>,
2008 pub machine: rb_thread_struct__bindgen_ty_1,
2009 pub stat_insn_usage: VALUE,
2010 pub event_hooks: rb_hook_list_t,
2011 pub trace_arg: *mut rb_trace_arg_struct,
2012 pub fiber: *mut rb_fiber_t,
2013 pub root_fiber: *mut rb_fiber_t,
2014 pub root_jmpbuf: rb_jmpbuf_t,
2015 pub ensure_list: *mut rb_ensure_list_t,
2016 pub method_missing_reason: ::std::os::raw::c_int,
2017 pub abort_on_exception: ::std::os::raw::c_int,
2018 pub altstack: *mut ::std::os::raw::c_void,
2019 pub running_time_us: ::std::os::raw::c_ulong,
2020}
2021#[repr(C)]
2022#[derive(Debug, Copy, Clone)]
2023pub struct rb_thread_struct__bindgen_ty_1 {
2024 pub stack_start: *mut VALUE,
2025 pub stack_end: *mut VALUE,
2026 pub stack_maxsize: usize,
2027 pub regs: jmp_buf,
2028}
2029impl ::std::fmt::Debug for rb_thread_struct {
2030 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2031 write ! (f , "rb_thread_struct {{ vmlt_node: {:?}, self: {:?}, vm: {:?}, stack: {:?}, cfp: {:?}, safe_level: {:?}, raised_flag: {:?}, last_status: {:?}, state: {:?}, waiting_fd: {:?}, passed_block: {:?}, passed_bmethod_me: {:?}, passed_ci: {:?}, top_self: {:?}, top_wrapper: {:?}, base_block: {:?}, root_lep: {:?}, root_svar: {:?}, thread_id: {:?}, status: {:?}, to_kill: {:?}, priority: {:?}, mark_stack_len: {:?}, native_thread_data: {:?}, blocking_region_buffer: {:?}, thgroup: {:?}, value: {:?}, errinfo: {:?}, pending_interrupt_queue: {:?}, pending_interrupt_mask_stack: {:?}, pending_interrupt_queue_checked: {:?}, interrupt_flag: {:?}, interrupt_mask: {:?}, interrupt_lock: {:?}, interrupt_cond: {:?}, unblock: {:?}, locking_mutex: {:?}, keeping_mutexes: {:?}, tag: {:?}, protect_tag: {:?}, parse_in_eval: {:?}, mild_compile_error: {:?}, local_storage: {:?}, local_storage_recursive_hash: {:?}, local_storage_recursive_hash_for_trace: {:?}, join_list: {:?}, first_proc: {:?}, first_args: {:?}, first_func: {:?}, machine: {:?}, stat_insn_usage: {:?}, event_hooks: {:?}, trace_arg: {:?}, fiber: {:?}, root_fiber: {:?}, root_jmpbuf: {:?}, ensure_list: {:?}, method_missing_reason: {:?}, abort_on_exception: {:?}, altstack: {:?}, running_time_us: {:?} }}" , self . vmlt_node , self . self_ , self . vm , self . stack , self . cfp , self . safe_level , self . raised_flag , self . last_status , self . state , self . waiting_fd , self . passed_block , self . passed_bmethod_me , self . passed_ci , self . top_self , self . top_wrapper , self . base_block , self . root_lep , self . root_svar , self . thread_id , self . status , self . to_kill , self . priority , self . mark_stack_len , self . native_thread_data , self . blocking_region_buffer , self . thgroup , self . value , self . errinfo , self . pending_interrupt_queue , self . pending_interrupt_mask_stack , self . pending_interrupt_queue_checked , self . interrupt_flag , self . interrupt_mask , self . interrupt_lock , self . interrupt_cond , 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 . local_storage_recursive_hash , self . local_storage_recursive_hash_for_trace , self . join_list , self . first_proc , self . first_args , self . first_func , self . machine , self . stat_insn_usage , self . event_hooks , self . trace_arg , self . fiber , self . root_fiber , self . root_jmpbuf , self . ensure_list , self . method_missing_reason , self . abort_on_exception , self . altstack , self . running_time_us)
2032 }
2033}
2034pub type rb_thread_t = rb_thread_struct;
2035#[repr(C)]
2036#[derive(Debug, Copy, Clone)]
2037pub struct rb_trace_arg_struct {
2038 pub event: rb_event_flag_t,
2039 pub th: *mut rb_thread_t,
2040 pub cfp: *mut rb_control_frame_t,
2041 pub self_: VALUE,
2042 pub id: ID,
2043 pub klass: VALUE,
2044 pub data: VALUE,
2045 pub klass_solved: ::std::os::raw::c_int,
2046 pub lineno: ::std::os::raw::c_int,
2047 pub path: VALUE,
2048}
2049#[repr(C)]
2050#[derive(Debug, Copy, Clone)]
2051pub struct rb_compile_option_struct {
2052 pub inline_const_cache: ::std::os::raw::c_int,
2053 pub peephole_optimization: ::std::os::raw::c_int,
2054 pub tailcall_optimization: ::std::os::raw::c_int,
2055 pub specialized_instruction: ::std::os::raw::c_int,
2056 pub operands_unification: ::std::os::raw::c_int,
2057 pub instructions_unification: ::std::os::raw::c_int,
2058 pub stack_caching: ::std::os::raw::c_int,
2059 pub trace_instruction: ::std::os::raw::c_int,
2060 pub debug_level: ::std::os::raw::c_int,
2061}
2062#[repr(C)]
2063#[derive(Debug, Copy, Clone)]
2064pub struct iseq_line_info_entry {
2065 pub position: ::std::os::raw::c_uint,
2066 pub line_no: ::std::os::raw::c_uint,
2067}
2068#[repr(C)]
2069#[derive(Debug, Copy, Clone)]
2070pub struct iseq_catch_table_entry {
2071 pub type_: iseq_catch_table_entry_catch_type,
2072 pub iseq: VALUE,
2073 pub start: ::std::os::raw::c_uint,
2074 pub end: ::std::os::raw::c_uint,
2075 pub cont: ::std::os::raw::c_uint,
2076 pub sp: ::std::os::raw::c_uint,
2077}
2078pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RESCUE: iseq_catch_table_entry_catch_type =
2079 3;
2080pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_ENSURE: iseq_catch_table_entry_catch_type =
2081 5;
2082pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_RETRY: iseq_catch_table_entry_catch_type = 7;
2083pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_BREAK: iseq_catch_table_entry_catch_type = 9;
2084pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_REDO: iseq_catch_table_entry_catch_type = 11;
2085pub const iseq_catch_table_entry_catch_type_CATCH_TYPE_NEXT: iseq_catch_table_entry_catch_type = 13;
2086pub type iseq_catch_table_entry_catch_type = ::std::os::raw::c_uint;
2087#[repr(C)]
2088#[derive(Copy, Clone)]
2089pub struct iseq_catch_table {
2090 pub size: ::std::os::raw::c_int,
2091 pub entries: [iseq_catch_table_entry; 1usize],
2092}
2093#[repr(C)]
2094#[derive(Debug, Copy, Clone)]
2095pub struct iseq_compile_data_storage {
2096 pub next: *mut iseq_compile_data_storage,
2097 pub pos: ::std::os::raw::c_uint,
2098 pub size: ::std::os::raw::c_uint,
2099 pub buff: [::std::os::raw::c_char; 1usize],
2100}
2101#[repr(C)]
2102#[derive(Debug, Copy, Clone)]
2103pub struct iseq_compile_data {
2104 pub err_info: VALUE,
2105 pub mark_ary: VALUE,
2106 pub catch_table_ary: VALUE,
2107 pub start_label: *mut iseq_label_data,
2108 pub end_label: *mut iseq_label_data,
2109 pub redo_label: *mut iseq_label_data,
2110 pub current_block: VALUE,
2111 pub ensure_node: VALUE,
2112 pub for_iseq: VALUE,
2113 pub ensure_node_stack: *mut iseq_compile_data_ensure_node_stack,
2114 pub loopval_popped: ::std::os::raw::c_int,
2115 pub cached_const: ::std::os::raw::c_int,
2116 pub storage_head: *mut iseq_compile_data_storage,
2117 pub storage_current: *mut iseq_compile_data_storage,
2118 pub last_line: ::std::os::raw::c_int,
2119 pub last_coverable_line: ::std::os::raw::c_int,
2120 pub label_no: ::std::os::raw::c_int,
2121 pub node_level: ::std::os::raw::c_int,
2122 pub option: *const rb_compile_option_t,
2123}
2124#[repr(C)]
2125#[derive(Debug, Copy, Clone)]
2126pub struct st_table_entry {
2127 pub _address: u8,
2128}
2129#[repr(C)]
2130#[derive(Debug, Copy, Clone)]
2131pub struct st_packed_entry {
2132 pub _address: u8,
2133}
2134#[repr(C)]
2135#[derive(Debug, Copy, Clone)]
2136pub struct rb_event_hook_struct {
2137 pub _address: u8,
2138}
2139#[repr(C)]
2140#[derive(Debug, Copy, Clone)]
2141pub struct rb_postponed_job_struct {
2142 pub _address: u8,
2143}
2144#[repr(C)]
2145#[derive(Debug, Copy, Clone)]
2146pub struct iseq_label_data {
2147 pub _address: u8,
2148}