1 #![allow(
2 dead_code,
3 non_snake_case,
4 non_camel_case_types,
5 non_upper_case_globals
6 )]
7
8 #[repr(C)]
9 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10 pub struct S {
11 pub large_array: [::std::os::raw::c_char; 33usize],
12 }
13 #[test]
bindgen_test_layout_Snull14 fn bindgen_test_layout_S() {
15 const UNINIT: ::std::mem::MaybeUninit<S> =
16 ::std::mem::MaybeUninit::uninit();
17 let ptr = UNINIT.as_ptr();
18 assert_eq!(
19 ::std::mem::size_of::<S>(),
20 33usize,
21 concat!("Size of: ", stringify!(S))
22 );
23 assert_eq!(
24 ::std::mem::align_of::<S>(),
25 1usize,
26 concat!("Alignment of ", stringify!(S))
27 );
28 assert_eq!(
29 unsafe {
30 ::std::ptr::addr_of!((*ptr).large_array) as usize - ptr as usize
31 },
32 0usize,
33 concat!(
34 "Offset of field: ",
35 stringify!(S),
36 "::",
37 stringify!(large_array)
38 )
39 );
40 }
41 impl Default for S {
defaultnull42 fn default() -> Self {
43 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
44 unsafe {
45 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
46 s.assume_init()
47 }
48 }
49 }
50 #[repr(C)]
51 #[derive(Debug, Hash, PartialEq, Eq)]
52 pub struct ST<T> {
53 pub large_array: [T; 33usize],
54 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
55 }
56 impl<T> Default for ST<T> {
defaultnull57 fn default() -> Self {
58 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
59 unsafe {
60 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
61 s.assume_init()
62 }
63 }
64 }
65