blob: c333d903efec59e8805e9a0ebc0882b896eb0968 [file] [log] [blame]
// Part of the Crubit project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// Automatically @generated Rust bindings for the following C++ target:
// //rs_bindings_from_cc/test/golden:inheritance_cc
// Features: experimental, non_extern_c_functions, supported
#![rustfmt::skip]
#![feature(custom_inner_attributes, impl_trait_in_assoc_type, negative_impls, register_tool)]
#![allow(stable_features)]
#![no_std]
#![register_tool(__crubit)]
#![allow(improper_ctypes)]
#![allow(nonstandard_style)]
#![deny(warnings)]
/// Using classes to force these to be non-POD.
/// In the Itanium ABI, the tail padding of POD types cannot be reused by other
/// objects, even if the POD type is potentially-overlapping.
#[derive(Clone, Copy)]
#[repr(C)]
#[__crubit::annotate(cpp_type = "Base0")]
pub struct Base0 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 1],
}
impl !Send for Base0 {}
impl !Sync for Base0 {}
forward_declare::unsafe_define!(forward_declare::symbol!("Base0"), crate::Base0);
impl Default for Base0 {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN5Base0C1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for Base0 {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN5Base0C1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for Base0 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN5Base0aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for Base0 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN5Base0aSEOS_(self, __param_0);
}
}
}
#[derive(Clone, Copy)]
#[repr(C, align(8))]
#[__crubit::annotate(cpp_type = "Base1")]
pub struct Base1 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 0],
/// Reason for representing this field as a blob of bytes:
/// Types of non-public C++ fields can be elided away
pub(crate) b1_1_: [::core::mem::MaybeUninit<u8>; 8],
/// Reason for representing this field as a blob of bytes:
/// Types of non-public C++ fields can be elided away
pub(crate) b1_2_: [::core::mem::MaybeUninit<u8>; 8],
}
impl !Send for Base1 {}
impl !Sync for Base1 {}
forward_declare::unsafe_define!(forward_declare::symbol!("Base1"), crate::Base1);
impl Default for Base1 {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN5Base1C1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for Base1 {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN5Base1C1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for Base1 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN5Base1aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for Base1 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN5Base1aSEOS_(self, __param_0);
}
}
}
#[derive(Clone, Copy)]
#[repr(C, align(2))]
#[__crubit::annotate(cpp_type = "Base2")]
pub struct Base2 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 0],
/// Reason for representing this field as a blob of bytes:
/// Types of non-public C++ fields can be elided away
pub(crate) b2_1_: [::core::mem::MaybeUninit<u8>; 2],
}
impl !Send for Base2 {}
impl !Sync for Base2 {}
forward_declare::unsafe_define!(forward_declare::symbol!("Base2"), crate::Base2);
impl Default for Base2 {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN5Base2C1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for Base2 {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN5Base2C1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for Base2 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN5Base2aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for Base2 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN5Base2aSEOS_(self, __param_0);
}
}
}
#[derive(Clone, Copy)]
#[repr(C, align(8))]
#[__crubit::annotate(cpp_type = "Derived")]
pub struct Derived {
__non_field_data: [::core::mem::MaybeUninit<u8>; 12],
pub derived_1: ::core::ffi::c_char,
}
impl !Send for Derived {}
impl !Sync for Derived {}
forward_declare::unsafe_define!(forward_declare::symbol!("Derived"), crate::Derived);
impl Default for Derived {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN7DerivedC1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for Derived {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN7DerivedC1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for Derived {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN7DerivedaSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for Derived {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN7DerivedaSEOS_(self, __param_0);
}
}
}
unsafe impl oops::Inherits<crate::Base0> for crate::Derived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base0 {
(derived as *const _ as *const u8).offset(0) as *const crate::Base0
}
}
unsafe impl oops::Inherits<crate::Base1> for crate::Derived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base1 {
(derived as *const _ as *const u8).offset(0) as *const crate::Base1
}
}
unsafe impl oops::Inherits<crate::Base2> for crate::Derived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base2 {
(derived as *const _ as *const u8).offset(10) as *const crate::Base2
}
}
#[::ctor::recursively_pinned]
#[repr(C, align(8))]
#[__crubit::annotate(cpp_type = "VirtualBase1")]
pub struct VirtualBase1 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 24],
}
impl !Send for VirtualBase1 {}
impl !Sync for VirtualBase1 {}
forward_declare::unsafe_define!(forward_declare::symbol!("VirtualBase1"), crate::VirtualBase1);
impl ::ctor::CtorNew<()> for VirtualBase1 {
type CtorType = impl ::ctor::Ctor<Output = Self>;
#[inline(always)]
fn ctor_new(args: ()) -> Self::CtorType {
let () = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN12VirtualBase1C1Ev(
::core::pin::Pin::into_inner_unchecked(dest),
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<&'b Self> for VirtualBase1 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: &'b Self) -> Self::CtorType {
let __param_0 = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN12VirtualBase1C1ERKS_(
::core::pin::Pin::into_inner_unchecked(dest),
__param_0,
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<(&'b Self,)> for VirtualBase1 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: (&'b Self,)) -> Self::CtorType {
let (arg,) = args;
<Self as ::ctor::CtorNew<&'b Self>>::ctor_new(arg)
}
}
impl<'b> ::ctor::CtorNew<::ctor::RvalueReference<'b, Self>> for VirtualBase1 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: ::ctor::RvalueReference<'b, Self>) -> Self::CtorType {
let __param_0 = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN12VirtualBase1C1EOS_(
::core::pin::Pin::into_inner_unchecked(dest),
__param_0,
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<(::ctor::RvalueReference<'b, Self>,)> for VirtualBase1 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: (::ctor::RvalueReference<'b, Self>,)) -> Self::CtorType {
let (arg,) = args;
<Self as ::ctor::CtorNew<::ctor::RvalueReference<'b, Self>>>::ctor_new(arg)
}
}
impl<'b> ::ctor::Assign<&'b Self> for VirtualBase1 {
#[inline(always)]
fn assign<'a>(self: ::core::pin::Pin<&'a mut Self>, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN12VirtualBase1aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::Assign<::ctor::RvalueReference<'b, Self>> for VirtualBase1 {
#[inline(always)]
fn assign<'a>(
self: ::core::pin::Pin<&'a mut Self>,
__param_0: ::ctor::RvalueReference<'b, Self>,
) {
unsafe {
crate::detail::__rust_thunk___ZN12VirtualBase1aSEOS_(self, __param_0);
}
}
}
unsafe impl oops::Inherits<crate::Base1> for crate::VirtualBase1 {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base1 {
crate::detail::__crubit_dynamic_upcast__12VirtualBase1__to__5Base1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(derived)
}
}
#[::ctor::recursively_pinned]
#[repr(C, align(8))]
#[__crubit::annotate(cpp_type = "VirtualBase2")]
pub struct VirtualBase2 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 24],
}
impl !Send for VirtualBase2 {}
impl !Sync for VirtualBase2 {}
forward_declare::unsafe_define!(forward_declare::symbol!("VirtualBase2"), crate::VirtualBase2);
impl ::ctor::CtorNew<()> for VirtualBase2 {
type CtorType = impl ::ctor::Ctor<Output = Self>;
#[inline(always)]
fn ctor_new(args: ()) -> Self::CtorType {
let () = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN12VirtualBase2C1Ev(
::core::pin::Pin::into_inner_unchecked(dest),
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<&'b Self> for VirtualBase2 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: &'b Self) -> Self::CtorType {
let __param_0 = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN12VirtualBase2C1ERKS_(
::core::pin::Pin::into_inner_unchecked(dest),
__param_0,
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<(&'b Self,)> for VirtualBase2 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: (&'b Self,)) -> Self::CtorType {
let (arg,) = args;
<Self as ::ctor::CtorNew<&'b Self>>::ctor_new(arg)
}
}
impl<'b> ::ctor::CtorNew<::ctor::RvalueReference<'b, Self>> for VirtualBase2 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: ::ctor::RvalueReference<'b, Self>) -> Self::CtorType {
let __param_0 = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN12VirtualBase2C1EOS_(
::core::pin::Pin::into_inner_unchecked(dest),
__param_0,
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<(::ctor::RvalueReference<'b, Self>,)> for VirtualBase2 {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: (::ctor::RvalueReference<'b, Self>,)) -> Self::CtorType {
let (arg,) = args;
<Self as ::ctor::CtorNew<::ctor::RvalueReference<'b, Self>>>::ctor_new(arg)
}
}
impl<'b> ::ctor::Assign<&'b Self> for VirtualBase2 {
#[inline(always)]
fn assign<'a>(self: ::core::pin::Pin<&'a mut Self>, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN12VirtualBase2aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::Assign<::ctor::RvalueReference<'b, Self>> for VirtualBase2 {
#[inline(always)]
fn assign<'a>(
self: ::core::pin::Pin<&'a mut Self>,
__param_0: ::ctor::RvalueReference<'b, Self>,
) {
unsafe {
crate::detail::__rust_thunk___ZN12VirtualBase2aSEOS_(self, __param_0);
}
}
}
unsafe impl oops::Inherits<crate::Base1> for crate::VirtualBase2 {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base1 {
crate::detail::__crubit_dynamic_upcast__12VirtualBase2__to__5Base1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(derived)
}
}
#[::ctor::recursively_pinned]
#[repr(C, align(8))]
#[__crubit::annotate(cpp_type = "VirtualDerived")]
pub struct VirtualDerived {
__non_field_data: [::core::mem::MaybeUninit<u8>; 32],
}
impl !Send for VirtualDerived {}
impl !Sync for VirtualDerived {}
forward_declare::unsafe_define!(forward_declare::symbol!("VirtualDerived"), crate::VirtualDerived);
impl ::ctor::CtorNew<()> for VirtualDerived {
type CtorType = impl ::ctor::Ctor<Output = Self>;
#[inline(always)]
fn ctor_new(args: ()) -> Self::CtorType {
let () = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN14VirtualDerivedC1Ev(
::core::pin::Pin::into_inner_unchecked(dest),
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<&'b Self> for VirtualDerived {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: &'b Self) -> Self::CtorType {
let __param_0 = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN14VirtualDerivedC1ERKS_(
::core::pin::Pin::into_inner_unchecked(dest),
__param_0,
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<(&'b Self,)> for VirtualDerived {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: (&'b Self,)) -> Self::CtorType {
let (arg,) = args;
<Self as ::ctor::CtorNew<&'b Self>>::ctor_new(arg)
}
}
impl<'b> ::ctor::CtorNew<::ctor::RvalueReference<'b, Self>> for VirtualDerived {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: ::ctor::RvalueReference<'b, Self>) -> Self::CtorType {
let __param_0 = args;
unsafe {
::ctor::FnCtor::new(
move |dest: ::core::pin::Pin<&mut ::core::mem::MaybeUninit<Self>>| {
crate::detail::__rust_thunk___ZN14VirtualDerivedC1EOS_(
::core::pin::Pin::into_inner_unchecked(dest),
__param_0,
);
},
)
}
}
}
impl<'b> ::ctor::CtorNew<(::ctor::RvalueReference<'b, Self>,)> for VirtualDerived {
type CtorType = impl ::ctor::Ctor<Output = Self> + ::ctor::Captures<'b>;
#[inline(always)]
fn ctor_new(args: (::ctor::RvalueReference<'b, Self>,)) -> Self::CtorType {
let (arg,) = args;
<Self as ::ctor::CtorNew<::ctor::RvalueReference<'b, Self>>>::ctor_new(arg)
}
}
impl<'b> ::ctor::Assign<&'b Self> for VirtualDerived {
#[inline(always)]
fn assign<'a>(self: ::core::pin::Pin<&'a mut Self>, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN14VirtualDerivedaSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::Assign<::ctor::RvalueReference<'b, Self>> for VirtualDerived {
#[inline(always)]
fn assign<'a>(
self: ::core::pin::Pin<&'a mut Self>,
__param_0: ::ctor::RvalueReference<'b, Self>,
) {
unsafe {
crate::detail::__rust_thunk___ZN14VirtualDerivedaSEOS_(self, __param_0);
}
}
}
unsafe impl oops::Inherits<crate::VirtualBase1> for crate::VirtualDerived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::VirtualBase1 {
crate::detail::__crubit_dynamic_upcast__14VirtualDerived__to__12VirtualBase1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(derived)
}
}
unsafe impl oops::Inherits<crate::Base1> for crate::VirtualDerived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base1 {
crate::detail::__crubit_dynamic_upcast__14VirtualDerived__to__5Base1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(derived)
}
}
unsafe impl oops::Inherits<crate::VirtualBase2> for crate::VirtualDerived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::VirtualBase2 {
crate::detail::__crubit_dynamic_upcast__14VirtualDerived__to__12VirtualBase2___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(derived)
}
}
#[::ctor::recursively_pinned]
#[repr(C, align(8))]
#[__crubit::annotate(cpp_type = "MyAbstractClass")]
pub struct MyAbstractClass {
__non_field_data: [::core::mem::MaybeUninit<u8>; 8],
}
impl !Send for MyAbstractClass {}
impl !Sync for MyAbstractClass {}
forward_declare::unsafe_define!(
forward_declare::symbol!("MyAbstractClass"),
crate::MyAbstractClass
);
// Error while generating bindings for item 'MyAbstractClass::MyAbstractClass':
// Can't directly construct values of type `MyAbstractClass` as it has a non-public or deleted destructor
// Error while generating bindings for item 'MyAbstractClass::MyAbstractClass':
// Can't directly construct values of type `MyAbstractClass` as it has a non-public or deleted destructor
impl<'b> ::ctor::Assign<&'b Self> for MyAbstractClass {
#[inline(always)]
fn assign<'a>(self: ::core::pin::Pin<&'a mut Self>, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN15MyAbstractClassaSERKS_(self, __param_0);
}
}
}
/// Method inheritance
#[derive(Clone, Copy)]
#[repr(C)]
#[__crubit::annotate(cpp_type = "MethodBase1")]
pub struct MethodBase1 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 1],
}
impl !Send for MethodBase1 {}
impl !Sync for MethodBase1 {}
forward_declare::unsafe_define!(forward_declare::symbol!("MethodBase1"), crate::MethodBase1);
impl Default for MethodBase1 {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase1C1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for MethodBase1 {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase1C1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for MethodBase1 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase1aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for MethodBase1 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase1aSEOS_(self, __param_0);
}
}
}
impl MethodBase1 {
#[inline(always)]
pub fn Public<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZN11MethodBase16PublicEv(self) }
}
}
impl MethodBase1 {
#[inline(always)]
pub fn Equals<'a, 'b>(&'a mut self, __param_0: Option<&'b Self>) {
unsafe { crate::detail::__rust_thunk___ZN11MethodBase16EqualsEPKS_(self, __param_0) }
}
}
impl MethodBase1 {
#[inline(always)]
pub fn Colliding1<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZN11MethodBase110Colliding1Ev(self) }
}
}
impl MethodBase1 {
#[inline(always)]
pub fn Colliding2<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZN11MethodBase110Colliding2Ev(self) }
}
}
#[derive(Clone, Copy)]
#[repr(C)]
#[__crubit::annotate(cpp_type = "MethodBase2")]
pub struct MethodBase2 {
__non_field_data: [::core::mem::MaybeUninit<u8>; 1],
}
impl !Send for MethodBase2 {}
impl !Sync for MethodBase2 {}
forward_declare::unsafe_define!(forward_declare::symbol!("MethodBase2"), crate::MethodBase2);
impl Default for MethodBase2 {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase2C1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for MethodBase2 {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase2C1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for MethodBase2 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase2aSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for MethodBase2 {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase2aSEOS_(self, __param_0);
}
}
}
impl MethodBase2 {
#[inline(always)]
pub fn Colliding1<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZN11MethodBase210Colliding1Ev(self) }
}
}
impl MethodBase2 {
#[inline(always)]
pub fn Colliding2<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZN11MethodBase210Colliding2Ev(self) }
}
}
#[derive(Clone, Copy)]
#[repr(C)]
#[__crubit::annotate(cpp_type = "MethodDerived")]
pub struct MethodDerived {
__non_field_data: [::core::mem::MaybeUninit<u8>; 1],
}
impl !Send for MethodDerived {}
impl !Sync for MethodDerived {}
forward_declare::unsafe_define!(forward_declare::symbol!("MethodDerived"), crate::MethodDerived);
impl Default for MethodDerived {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN13MethodDerivedC1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for MethodDerived {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN13MethodDerivedC1EOS_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for MethodDerived {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN13MethodDerivedaSERKS_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for MethodDerived {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN13MethodDerivedaSEOS_(self, __param_0);
}
}
}
impl MethodDerived {
#[inline(always)]
pub fn Equals<'a, 'b>(&'a mut self, __param_0: Option<&'b crate::MethodBase1>) {
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase16EqualsEPKS__MethodDerived(
oops::Upcast::<_>::upcast(self),
__param_0,
)
}
}
}
impl MethodDerived {
#[inline(always)]
pub fn Public<'a>(&'a mut self) {
unsafe {
crate::detail::__rust_thunk___ZN11MethodBase16PublicEv_MethodDerived(
oops::Upcast::<_>::upcast(self),
)
}
}
}
unsafe impl oops::Inherits<crate::MethodBase1> for crate::MethodDerived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::MethodBase1 {
(derived as *const _ as *const u8).offset(0) as *const crate::MethodBase1
}
}
unsafe impl oops::Inherits<crate::MethodBase2> for crate::MethodDerived {
unsafe fn upcast_ptr(derived: *const Self) -> *const crate::MethodBase2 {
(derived as *const _ as *const u8).offset(0) as *const crate::MethodBase2
}
}
mod detail {
#[allow(unused_imports)]
use super::*;
extern "C" {
pub(crate) fn __rust_thunk___ZN5Base0C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Base0>,
);
pub(crate) fn __rust_thunk___ZN5Base0C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Base0>,
__param_0: ::ctor::RvalueReference<'b, crate::Base0>,
);
pub(crate) fn __rust_thunk___ZN5Base0aSERKS_<'a, 'b>(
__this: &'a mut crate::Base0,
__param_0: &'b crate::Base0,
) -> &'a mut crate::Base0;
pub(crate) fn __rust_thunk___ZN5Base0aSEOS_<'a, 'b>(
__this: &'a mut crate::Base0,
__param_0: ::ctor::RvalueReference<'b, crate::Base0>,
) -> &'a mut crate::Base0;
pub(crate) fn __rust_thunk___ZN5Base1C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Base1>,
);
pub(crate) fn __rust_thunk___ZN5Base1C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Base1>,
__param_0: ::ctor::RvalueReference<'b, crate::Base1>,
);
pub(crate) fn __rust_thunk___ZN5Base1aSERKS_<'a, 'b>(
__this: &'a mut crate::Base1,
__param_0: &'b crate::Base1,
) -> &'a mut crate::Base1;
pub(crate) fn __rust_thunk___ZN5Base1aSEOS_<'a, 'b>(
__this: &'a mut crate::Base1,
__param_0: ::ctor::RvalueReference<'b, crate::Base1>,
) -> &'a mut crate::Base1;
pub(crate) fn __rust_thunk___ZN5Base2C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Base2>,
);
pub(crate) fn __rust_thunk___ZN5Base2C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Base2>,
__param_0: ::ctor::RvalueReference<'b, crate::Base2>,
);
pub(crate) fn __rust_thunk___ZN5Base2aSERKS_<'a, 'b>(
__this: &'a mut crate::Base2,
__param_0: &'b crate::Base2,
) -> &'a mut crate::Base2;
pub(crate) fn __rust_thunk___ZN5Base2aSEOS_<'a, 'b>(
__this: &'a mut crate::Base2,
__param_0: ::ctor::RvalueReference<'b, crate::Base2>,
) -> &'a mut crate::Base2;
pub(crate) fn __rust_thunk___ZN7DerivedC1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Derived>,
);
pub(crate) fn __rust_thunk___ZN7DerivedC1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::Derived>,
__param_0: ::ctor::RvalueReference<'b, crate::Derived>,
);
pub(crate) fn __rust_thunk___ZN7DerivedaSERKS_<'a, 'b>(
__this: &'a mut crate::Derived,
__param_0: &'b crate::Derived,
) -> &'a mut crate::Derived;
pub(crate) fn __rust_thunk___ZN7DerivedaSEOS_<'a, 'b>(
__this: &'a mut crate::Derived,
__param_0: ::ctor::RvalueReference<'b, crate::Derived>,
) -> &'a mut crate::Derived;
pub(crate) fn __rust_thunk___ZN12VirtualBase1C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualBase1>,
);
pub(crate) fn __rust_thunk___ZN12VirtualBase1C1ERKS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualBase1>,
__param_0: &'b crate::VirtualBase1,
);
pub(crate) fn __rust_thunk___ZN12VirtualBase1C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualBase1>,
__param_0: ::ctor::RvalueReference<'b, crate::VirtualBase1>,
);
pub(crate) fn __rust_thunk___ZN12VirtualBase1aSERKS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::VirtualBase1>,
__param_0: &'b crate::VirtualBase1,
) -> ::core::pin::Pin<&'a mut crate::VirtualBase1>;
pub(crate) fn __rust_thunk___ZN12VirtualBase1aSEOS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::VirtualBase1>,
__param_0: ::ctor::RvalueReference<'b, crate::VirtualBase1>,
) -> ::core::pin::Pin<&'a mut crate::VirtualBase1>;
pub fn __crubit_dynamic_upcast__12VirtualBase1__to__5Base1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(
from: *const crate::VirtualBase1,
) -> *const crate::Base1;
pub(crate) fn __rust_thunk___ZN12VirtualBase2C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualBase2>,
);
pub(crate) fn __rust_thunk___ZN12VirtualBase2C1ERKS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualBase2>,
__param_0: &'b crate::VirtualBase2,
);
pub(crate) fn __rust_thunk___ZN12VirtualBase2C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualBase2>,
__param_0: ::ctor::RvalueReference<'b, crate::VirtualBase2>,
);
pub(crate) fn __rust_thunk___ZN12VirtualBase2aSERKS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::VirtualBase2>,
__param_0: &'b crate::VirtualBase2,
) -> ::core::pin::Pin<&'a mut crate::VirtualBase2>;
pub(crate) fn __rust_thunk___ZN12VirtualBase2aSEOS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::VirtualBase2>,
__param_0: ::ctor::RvalueReference<'b, crate::VirtualBase2>,
) -> ::core::pin::Pin<&'a mut crate::VirtualBase2>;
pub fn __crubit_dynamic_upcast__12VirtualBase2__to__5Base1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(
from: *const crate::VirtualBase2,
) -> *const crate::Base1;
pub(crate) fn __rust_thunk___ZN14VirtualDerivedC1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualDerived>,
);
pub(crate) fn __rust_thunk___ZN14VirtualDerivedC1ERKS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualDerived>,
__param_0: &'b crate::VirtualDerived,
);
pub(crate) fn __rust_thunk___ZN14VirtualDerivedC1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::VirtualDerived>,
__param_0: ::ctor::RvalueReference<'b, crate::VirtualDerived>,
);
pub(crate) fn __rust_thunk___ZN14VirtualDerivedaSERKS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::VirtualDerived>,
__param_0: &'b crate::VirtualDerived,
) -> ::core::pin::Pin<&'a mut crate::VirtualDerived>;
pub(crate) fn __rust_thunk___ZN14VirtualDerivedaSEOS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::VirtualDerived>,
__param_0: ::ctor::RvalueReference<'b, crate::VirtualDerived>,
) -> ::core::pin::Pin<&'a mut crate::VirtualDerived>;
pub fn __crubit_dynamic_upcast__14VirtualDerived__to__12VirtualBase1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(
from: *const crate::VirtualDerived,
) -> *const crate::VirtualBase1;
pub fn __crubit_dynamic_upcast__14VirtualDerived__to__5Base1___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(
from: *const crate::VirtualDerived,
) -> *const crate::Base1;
pub fn __crubit_dynamic_upcast__14VirtualDerived__to__12VirtualBase2___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3ainheritance_5fcc(
from: *const crate::VirtualDerived,
) -> *const crate::VirtualBase2;
pub(crate) fn __rust_thunk___ZN15MyAbstractClassaSERKS_<'a, 'b>(
__this: ::core::pin::Pin<&'a mut crate::MyAbstractClass>,
__param_0: &'b crate::MyAbstractClass,
) -> ::core::pin::Pin<&'a mut crate::MyAbstractClass>;
pub(crate) fn __rust_thunk___ZN11MethodBase1C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::MethodBase1>,
);
pub(crate) fn __rust_thunk___ZN11MethodBase1C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::MethodBase1>,
__param_0: ::ctor::RvalueReference<'b, crate::MethodBase1>,
);
pub(crate) fn __rust_thunk___ZN11MethodBase1aSERKS_<'a, 'b>(
__this: &'a mut crate::MethodBase1,
__param_0: &'b crate::MethodBase1,
) -> &'a mut crate::MethodBase1;
pub(crate) fn __rust_thunk___ZN11MethodBase1aSEOS_<'a, 'b>(
__this: &'a mut crate::MethodBase1,
__param_0: ::ctor::RvalueReference<'b, crate::MethodBase1>,
) -> &'a mut crate::MethodBase1;
#[link_name = "_ZN11MethodBase16PublicEv"]
pub(crate) fn __rust_thunk___ZN11MethodBase16PublicEv<'a>(
__this: &'a mut crate::MethodBase1,
);
#[link_name = "_ZN11MethodBase16EqualsEPKS_"]
pub(crate) fn __rust_thunk___ZN11MethodBase16EqualsEPKS_<'a, 'b>(
__this: &'a mut crate::MethodBase1,
__param_0: Option<&'b crate::MethodBase1>,
);
#[link_name = "_ZN11MethodBase110Colliding1Ev"]
pub(crate) fn __rust_thunk___ZN11MethodBase110Colliding1Ev<'a>(
__this: &'a mut crate::MethodBase1,
);
#[link_name = "_ZN11MethodBase110Colliding2Ev"]
pub(crate) fn __rust_thunk___ZN11MethodBase110Colliding2Ev<'a>(
__this: &'a mut crate::MethodBase1,
);
pub(crate) fn __rust_thunk___ZN11MethodBase2C1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::MethodBase2>,
);
pub(crate) fn __rust_thunk___ZN11MethodBase2C1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::MethodBase2>,
__param_0: ::ctor::RvalueReference<'b, crate::MethodBase2>,
);
pub(crate) fn __rust_thunk___ZN11MethodBase2aSERKS_<'a, 'b>(
__this: &'a mut crate::MethodBase2,
__param_0: &'b crate::MethodBase2,
) -> &'a mut crate::MethodBase2;
pub(crate) fn __rust_thunk___ZN11MethodBase2aSEOS_<'a, 'b>(
__this: &'a mut crate::MethodBase2,
__param_0: ::ctor::RvalueReference<'b, crate::MethodBase2>,
) -> &'a mut crate::MethodBase2;
#[link_name = "_ZN11MethodBase210Colliding1Ev"]
pub(crate) fn __rust_thunk___ZN11MethodBase210Colliding1Ev<'a>(
__this: &'a mut crate::MethodBase2,
);
#[link_name = "_ZN11MethodBase210Colliding2Ev"]
pub(crate) fn __rust_thunk___ZN11MethodBase210Colliding2Ev<'a>(
__this: &'a mut crate::MethodBase2,
);
pub(crate) fn __rust_thunk___ZN13MethodDerivedC1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::MethodDerived>,
);
pub(crate) fn __rust_thunk___ZN13MethodDerivedC1EOS_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::MethodDerived>,
__param_0: ::ctor::RvalueReference<'b, crate::MethodDerived>,
);
pub(crate) fn __rust_thunk___ZN13MethodDerivedaSERKS_<'a, 'b>(
__this: &'a mut crate::MethodDerived,
__param_0: &'b crate::MethodDerived,
) -> &'a mut crate::MethodDerived;
pub(crate) fn __rust_thunk___ZN13MethodDerivedaSEOS_<'a, 'b>(
__this: &'a mut crate::MethodDerived,
__param_0: ::ctor::RvalueReference<'b, crate::MethodDerived>,
) -> &'a mut crate::MethodDerived;
#[link_name = "_ZN11MethodBase16EqualsEPKS_"]
pub(crate) fn __rust_thunk___ZN11MethodBase16EqualsEPKS__MethodDerived<'a, 'b>(
__this: &'a mut crate::MethodBase1,
__param_0: Option<&'b crate::MethodBase1>,
);
#[link_name = "_ZN11MethodBase16PublicEv"]
pub(crate) fn __rust_thunk___ZN11MethodBase16PublicEv_MethodDerived<'a>(
__this: &'a mut crate::MethodBase1,
);
}
}
const _: () = {
assert!(::core::mem::size_of::<crate::Base0>() == 1);
assert!(::core::mem::align_of::<crate::Base0>() == 1);
static_assertions::assert_impl_all!(crate::Base0: Clone);
static_assertions::assert_impl_all!(crate::Base0: Copy);
static_assertions::assert_not_impl_any!(crate::Base0: Drop);
assert!(::core::mem::size_of::<crate::Base1>() == 16);
assert!(::core::mem::align_of::<crate::Base1>() == 8);
static_assertions::assert_impl_all!(crate::Base1: Clone);
static_assertions::assert_impl_all!(crate::Base1: Copy);
static_assertions::assert_not_impl_any!(crate::Base1: Drop);
assert!(::core::mem::offset_of!(crate::Base1, b1_1_) == 0);
assert!(::core::mem::offset_of!(crate::Base1, b1_2_) == 8);
assert!(::core::mem::size_of::<crate::Base2>() == 2);
assert!(::core::mem::align_of::<crate::Base2>() == 2);
static_assertions::assert_impl_all!(crate::Base2: Clone);
static_assertions::assert_impl_all!(crate::Base2: Copy);
static_assertions::assert_not_impl_any!(crate::Base2: Drop);
assert!(::core::mem::offset_of!(crate::Base2, b2_1_) == 0);
assert!(::core::mem::size_of::<crate::Derived>() == 16);
assert!(::core::mem::align_of::<crate::Derived>() == 8);
static_assertions::assert_impl_all!(crate::Derived: Clone);
static_assertions::assert_impl_all!(crate::Derived: Copy);
static_assertions::assert_not_impl_any!(crate::Derived: Drop);
assert!(::core::mem::offset_of!(crate::Derived, derived_1) == 12);
assert!(::core::mem::size_of::<crate::VirtualBase1>() == 24);
assert!(::core::mem::align_of::<crate::VirtualBase1>() == 8);
static_assertions::assert_not_impl_any!(crate::VirtualBase1: Copy);
static_assertions::assert_not_impl_any!(crate::VirtualBase1: Drop);
assert!(::core::mem::size_of::<crate::VirtualBase2>() == 24);
assert!(::core::mem::align_of::<crate::VirtualBase2>() == 8);
static_assertions::assert_not_impl_any!(crate::VirtualBase2: Copy);
static_assertions::assert_not_impl_any!(crate::VirtualBase2: Drop);
assert!(::core::mem::size_of::<crate::VirtualDerived>() == 32);
assert!(::core::mem::align_of::<crate::VirtualDerived>() == 8);
static_assertions::assert_not_impl_any!(crate::VirtualDerived: Copy);
static_assertions::assert_not_impl_any!(crate::VirtualDerived: Drop);
assert!(::core::mem::size_of::<crate::MyAbstractClass>() == 8);
assert!(::core::mem::align_of::<crate::MyAbstractClass>() == 8);
static_assertions::assert_not_impl_any!(crate::MyAbstractClass: Copy);
static_assertions::assert_not_impl_any!(crate::MyAbstractClass: Drop);
assert!(::core::mem::size_of::<crate::MethodBase1>() == 1);
assert!(::core::mem::align_of::<crate::MethodBase1>() == 1);
static_assertions::assert_impl_all!(crate::MethodBase1: Clone);
static_assertions::assert_impl_all!(crate::MethodBase1: Copy);
static_assertions::assert_not_impl_any!(crate::MethodBase1: Drop);
assert!(::core::mem::size_of::<crate::MethodBase2>() == 1);
assert!(::core::mem::align_of::<crate::MethodBase2>() == 1);
static_assertions::assert_impl_all!(crate::MethodBase2: Clone);
static_assertions::assert_impl_all!(crate::MethodBase2: Copy);
static_assertions::assert_not_impl_any!(crate::MethodBase2: Drop);
assert!(::core::mem::size_of::<crate::MethodDerived>() == 1);
assert!(::core::mem::align_of::<crate::MethodDerived>() == 1);
static_assertions::assert_impl_all!(crate::MethodDerived: Clone);
static_assertions::assert_impl_all!(crate::MethodDerived: Copy);
static_assertions::assert_not_impl_any!(crate::MethodDerived: Drop);
};