diff options
Diffstat (limited to 'tests/expectations/tests/struct_with_anon_union.rs')
-rw-r--r-- | tests/expectations/tests/struct_with_anon_union.rs | 44 |
1 files changed, 11 insertions, 33 deletions
diff --git a/tests/expectations/tests/struct_with_anon_union.rs b/tests/expectations/tests/struct_with_anon_union.rs index 84be35ed..eeb36756 100644 --- a/tests/expectations/tests/struct_with_anon_union.rs +++ b/tests/expectations/tests/struct_with_anon_union.rs @@ -5,43 +5,15 @@ #[repr(C)] -pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); -impl <T> __BindgenUnionField<T> { - #[inline] - pub fn new() -> Self { __BindgenUnionField(::std::marker::PhantomData) } - #[inline] - pub unsafe fn as_ref(&self) -> &T { ::std::mem::transmute(self) } - #[inline] - pub unsafe fn as_mut(&mut self) -> &mut T { ::std::mem::transmute(self) } -} -impl <T> ::std::default::Default for __BindgenUnionField<T> { - #[inline] - fn default() -> Self { Self::new() } -} -impl <T> ::std::clone::Clone for __BindgenUnionField<T> { - #[inline] - fn clone(&self) -> Self { Self::new() } -} -impl <T> ::std::marker::Copy for __BindgenUnionField<T> { } -impl <T> ::std::fmt::Debug for __BindgenUnionField<T> { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - fmt.write_str("__BindgenUnionField") - } -} -impl <T> ::std::hash::Hash for __BindgenUnionField<T> { - fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) { } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Hash)] +#[derive(Copy)] pub struct foo { pub bar: foo__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Default, Copy, Hash)] -pub struct foo__bindgen_ty_1 { - pub a: __BindgenUnionField<::std::os::raw::c_uint>, - pub b: __BindgenUnionField<::std::os::raw::c_ushort>, - pub bindgen_union_field: u32, +#[derive(Copy)] +pub union foo__bindgen_ty_1 { + pub a: ::std::os::raw::c_uint, + pub b: ::std::os::raw::c_ushort, } #[test] fn bindgen_test_layout_foo__bindgen_ty_1() { @@ -63,6 +35,9 @@ fn bindgen_test_layout_foo__bindgen_ty_1() { impl Clone for foo__bindgen_ty_1 { fn clone(&self) -> Self { *self } } +impl Default for foo__bindgen_ty_1 { + fn default() -> Self { unsafe { ::std::mem::zeroed() } } +} #[test] fn bindgen_test_layout_foo() { assert_eq!(::std::mem::size_of::<foo>() , 4usize , concat ! ( @@ -78,3 +53,6 @@ fn bindgen_test_layout_foo() { impl Clone for foo { fn clone(&self) -> Self { *self } } +impl Default for foo { + fn default() -> Self { unsafe { ::std::mem::zeroed() } } +} |