blob: 538a745f445e9e219cc3c421b9aec367d7af624b [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:trivial_type_cc
// Features: experimental, non_extern_c_functions, supported
#![rustfmt::skip]
#![feature(arbitrary_self_types, custom_inner_attributes, negative_impls, register_tool)]
#![allow(stable_features)]
#![no_std]
#![register_tool(__crubit)]
#![allow(improper_ctypes)]
#![allow(nonstandard_style)]
#![allow(dead_code)]
#![deny(warnings)]
pub mod ns {
/// Implicitly defined special member functions are trivial on a struct with
/// only trivial members.
#[derive(Clone, Copy)]
#[repr(C)]
#[__crubit::annotate(cpp_type = "ns :: Trivial")]
pub struct Trivial {
pub trivial_field: ::core::ffi::c_int,
}
impl !Send for Trivial {}
impl !Sync for Trivial {}
forward_declare::unsafe_define!(forward_declare::symbol!("ns :: Trivial"), crate::ns::Trivial);
impl Default for Trivial {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN2ns7TrivialC1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for Trivial {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN2ns7TrivialC1EOS0_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for Trivial {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN2ns7TrivialaSERKS0_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for Trivial {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN2ns7TrivialaSEOS0_(self, __param_0);
}
}
}
impl Trivial {
#[inline(always)]
pub fn Unqualified<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZN2ns7Trivial11UnqualifiedEv(self) }
}
}
impl Trivial {
#[inline(always)]
pub fn ConstQualified<'a>(&'a self) {
unsafe { crate::detail::__rust_thunk___ZNK2ns7Trivial14ConstQualifiedEv(self) }
}
}
impl Trivial {
#[inline(always)]
pub fn LvalueRefQualified<'a>(&'a mut self) {
unsafe { crate::detail::__rust_thunk___ZNR2ns7Trivial18LvalueRefQualifiedEv(self) }
}
}
impl Trivial {
#[inline(always)]
pub fn ConstLvalueRefQualified<'a>(&'a self) {
unsafe {
crate::detail::__rust_thunk___ZNKR2ns7Trivial23ConstLvalueRefQualifiedEv(self)
}
}
}
impl Trivial {
#[inline(always)]
pub fn RvalueRefQualified<'a>(self: ::ctor::RvalueReference<'a, Self>) {
unsafe { crate::detail::__rust_thunk___ZNO2ns7Trivial18RvalueRefQualifiedEv(self) }
}
}
impl Trivial {
#[inline(always)]
pub fn ConstRvalueRefQualified<'a>(self: ::ctor::ConstRvalueReference<'a, Self>) {
unsafe {
crate::detail::__rust_thunk___ZNKO2ns7Trivial23ConstRvalueRefQualifiedEv(self)
}
}
}
/// This struct is trivial, and therefore trivially relocatable etc., but still
/// not safe to pass by reference as it is not final.
#[derive(Clone, Copy)]
#[repr(C)]
#[__crubit::annotate(cpp_type = "ns :: TrivialNonfinal")]
pub struct TrivialNonfinal {
pub trivial_field: ::core::ffi::c_int,
}
impl !Send for TrivialNonfinal {}
impl !Sync for TrivialNonfinal {}
forward_declare::unsafe_define!(
forward_declare::symbol!("ns :: TrivialNonfinal"),
crate::ns::TrivialNonfinal
);
impl Default for TrivialNonfinal {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN2ns15TrivialNonfinalC1Ev(&mut tmp);
tmp.assume_init()
}
}
}
impl<'b> From<::ctor::RvalueReference<'b, Self>> for TrivialNonfinal {
#[inline(always)]
fn from(__param_0: ::ctor::RvalueReference<'b, Self>) -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN2ns15TrivialNonfinalC1EOS0_(&mut tmp, __param_0);
tmp.assume_init()
}
}
}
impl<'b> ::ctor::UnpinAssign<&'b Self> for TrivialNonfinal {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: &'b Self) {
unsafe {
crate::detail::__rust_thunk___ZN2ns15TrivialNonfinalaSERKS0_(self, __param_0);
}
}
}
impl<'b> ::ctor::UnpinAssign<::ctor::RvalueReference<'b, Self>> for TrivialNonfinal {
#[inline(always)]
fn unpin_assign<'a>(&'a mut self, __param_0: ::ctor::RvalueReference<'b, Self>) {
unsafe {
crate::detail::__rust_thunk___ZN2ns15TrivialNonfinalaSEOS0_(self, __param_0);
}
}
}
#[inline(always)]
pub fn TakesByValue(mut trivial: crate::ns::Trivial) -> crate::ns::Trivial {
unsafe {
let mut __return = ::core::mem::MaybeUninit::<crate::ns::Trivial>::uninit();
crate::detail::__rust_thunk___ZN2ns12TakesByValueENS_7TrivialE(
&mut __return,
&mut trivial,
);
__return.assume_init()
}
}
#[inline(always)]
pub fn TakesTrivialNonfinalByValue(
mut trivial: crate::ns::TrivialNonfinal,
) -> crate::ns::TrivialNonfinal {
unsafe {
let mut __return = ::core::mem::MaybeUninit::<crate::ns::TrivialNonfinal>::uninit();
crate::detail::__rust_thunk___ZN2ns27TakesTrivialNonfinalByValueENS_15TrivialNonfinalE(
&mut __return,
&mut trivial,
);
__return.assume_init()
}
}
#[inline(always)]
pub fn TakesByReference<'a>(trivial: &'a mut crate::ns::Trivial) -> &'a mut crate::ns::Trivial {
unsafe { crate::detail::__rust_thunk___ZN2ns16TakesByReferenceERNS_7TrivialE(trivial) }
}
#[inline(always)]
pub fn TakesTrivialNonfinalByReference<'a>(
trivial: &'a mut crate::ns::TrivialNonfinal,
) -> &'a mut crate::ns::TrivialNonfinal {
unsafe {
crate::detail::__rust_thunk___ZN2ns31TakesTrivialNonfinalByReferenceERNS_15TrivialNonfinalE(trivial)
}
}
#[inline(always)]
pub fn TakesByConstReference<'a>(trivial: &'a crate::ns::Trivial) -> &'a crate::ns::Trivial {
unsafe {
crate::detail::__rust_thunk___ZN2ns21TakesByConstReferenceERKNS_7TrivialE(trivial)
}
}
#[inline(always)]
pub fn TakesTrivialNonfinalByConstReference<'a>(
trivial: &'a crate::ns::TrivialNonfinal,
) -> &'a crate::ns::TrivialNonfinal {
unsafe {
crate::detail::__rust_thunk___ZN2ns36TakesTrivialNonfinalByConstReferenceERKNS_15TrivialNonfinalE(trivial)
}
}
#[inline(always)]
pub fn TakesByRvalueReference<'a>(
trivial: ::ctor::RvalueReference<'a, crate::ns::Trivial>,
) -> ::ctor::RvalueReference<'a, crate::ns::Trivial> {
unsafe {
crate::detail::__rust_thunk___ZN2ns22TakesByRvalueReferenceEONS_7TrivialE(trivial)
}
}
#[inline(always)]
pub fn TakesTrivialNonfinalByRvalueReference<'a>(
trivial: ::ctor::RvalueReference<'a, crate::ns::TrivialNonfinal>,
) -> ::ctor::RvalueReference<'a, crate::ns::TrivialNonfinal> {
unsafe {
crate::detail::__rust_thunk___ZN2ns37TakesTrivialNonfinalByRvalueReferenceEONS_15TrivialNonfinalE(trivial)
}
}
#[inline(always)]
pub fn TakesByConstRvalueReference<'a>(
trivial: ::ctor::ConstRvalueReference<'a, crate::ns::Trivial>,
) -> ::ctor::ConstRvalueReference<'a, crate::ns::Trivial> {
unsafe {
crate::detail::__rust_thunk___ZN2ns27TakesByConstRvalueReferenceEOKNS_7TrivialE(trivial)
}
}
#[inline(always)]
pub fn TakesTrivialNonfinalByConstRvalueReference<'a>(
trivial: ::ctor::ConstRvalueReference<'a, crate::ns::TrivialNonfinal>,
) -> ::ctor::ConstRvalueReference<'a, crate::ns::TrivialNonfinal> {
unsafe {
crate::detail::__rust_thunk___ZN2ns42TakesTrivialNonfinalByConstRvalueReferenceEOKNS_15TrivialNonfinalE(trivial)
}
}
}
// namespace ns
mod detail {
#[allow(unused_imports)]
use super::*;
extern "C" {
pub(crate) fn __rust_thunk___ZN2ns7TrivialC1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::ns::Trivial>,
);
pub(crate) fn __rust_thunk___ZN2ns7TrivialC1EOS0_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::ns::Trivial>,
__param_0: ::ctor::RvalueReference<'b, crate::ns::Trivial>,
);
pub(crate) fn __rust_thunk___ZN2ns7TrivialaSERKS0_<'a, 'b>(
__this: &'a mut crate::ns::Trivial,
__param_0: &'b crate::ns::Trivial,
) -> &'a mut crate::ns::Trivial;
pub(crate) fn __rust_thunk___ZN2ns7TrivialaSEOS0_<'a, 'b>(
__this: &'a mut crate::ns::Trivial,
__param_0: ::ctor::RvalueReference<'b, crate::ns::Trivial>,
) -> &'a mut crate::ns::Trivial;
#[link_name = "_ZN2ns7Trivial11UnqualifiedEv"]
pub(crate) fn __rust_thunk___ZN2ns7Trivial11UnqualifiedEv<'a>(
__this: &'a mut crate::ns::Trivial,
);
#[link_name = "_ZNK2ns7Trivial14ConstQualifiedEv"]
pub(crate) fn __rust_thunk___ZNK2ns7Trivial14ConstQualifiedEv<'a>(
__this: &'a crate::ns::Trivial,
);
#[link_name = "_ZNR2ns7Trivial18LvalueRefQualifiedEv"]
pub(crate) fn __rust_thunk___ZNR2ns7Trivial18LvalueRefQualifiedEv<'a>(
__this: &'a mut crate::ns::Trivial,
);
#[link_name = "_ZNKR2ns7Trivial23ConstLvalueRefQualifiedEv"]
pub(crate) fn __rust_thunk___ZNKR2ns7Trivial23ConstLvalueRefQualifiedEv<'a>(
__this: &'a crate::ns::Trivial,
);
#[link_name = "_ZNO2ns7Trivial18RvalueRefQualifiedEv"]
pub(crate) fn __rust_thunk___ZNO2ns7Trivial18RvalueRefQualifiedEv<'a>(
__this: ::ctor::RvalueReference<'a, crate::ns::Trivial>,
);
#[link_name = "_ZNKO2ns7Trivial23ConstRvalueRefQualifiedEv"]
pub(crate) fn __rust_thunk___ZNKO2ns7Trivial23ConstRvalueRefQualifiedEv<'a>(
__this: ::ctor::ConstRvalueReference<'a, crate::ns::Trivial>,
);
pub(crate) fn __rust_thunk___ZN2ns15TrivialNonfinalC1Ev<'a>(
__this: &'a mut ::core::mem::MaybeUninit<crate::ns::TrivialNonfinal>,
);
pub(crate) fn __rust_thunk___ZN2ns15TrivialNonfinalC1EOS0_<'a, 'b>(
__this: &'a mut ::core::mem::MaybeUninit<crate::ns::TrivialNonfinal>,
__param_0: ::ctor::RvalueReference<'b, crate::ns::TrivialNonfinal>,
);
pub(crate) fn __rust_thunk___ZN2ns15TrivialNonfinalaSERKS0_<'a, 'b>(
__this: &'a mut crate::ns::TrivialNonfinal,
__param_0: &'b crate::ns::TrivialNonfinal,
) -> &'a mut crate::ns::TrivialNonfinal;
pub(crate) fn __rust_thunk___ZN2ns15TrivialNonfinalaSEOS0_<'a, 'b>(
__this: &'a mut crate::ns::TrivialNonfinal,
__param_0: ::ctor::RvalueReference<'b, crate::ns::TrivialNonfinal>,
) -> &'a mut crate::ns::TrivialNonfinal;
pub(crate) fn __rust_thunk___ZN2ns12TakesByValueENS_7TrivialE(
__return: &mut ::core::mem::MaybeUninit<crate::ns::Trivial>,
trivial: &mut crate::ns::Trivial,
);
pub(crate) fn __rust_thunk___ZN2ns27TakesTrivialNonfinalByValueENS_15TrivialNonfinalE(
__return: &mut ::core::mem::MaybeUninit<crate::ns::TrivialNonfinal>,
trivial: &mut crate::ns::TrivialNonfinal,
);
#[link_name = "_ZN2ns16TakesByReferenceERNS_7TrivialE"]
pub(crate) fn __rust_thunk___ZN2ns16TakesByReferenceERNS_7TrivialE<'a>(
trivial: &'a mut crate::ns::Trivial,
) -> &'a mut crate::ns::Trivial;
#[link_name = "_ZN2ns31TakesTrivialNonfinalByReferenceERNS_15TrivialNonfinalE"]
pub(crate) fn __rust_thunk___ZN2ns31TakesTrivialNonfinalByReferenceERNS_15TrivialNonfinalE<
'a,
>(
trivial: &'a mut crate::ns::TrivialNonfinal,
) -> &'a mut crate::ns::TrivialNonfinal;
#[link_name = "_ZN2ns21TakesByConstReferenceERKNS_7TrivialE"]
pub(crate) fn __rust_thunk___ZN2ns21TakesByConstReferenceERKNS_7TrivialE<'a>(
trivial: &'a crate::ns::Trivial,
) -> &'a crate::ns::Trivial;
#[link_name = "_ZN2ns36TakesTrivialNonfinalByConstReferenceERKNS_15TrivialNonfinalE"]
pub(crate) fn __rust_thunk___ZN2ns36TakesTrivialNonfinalByConstReferenceERKNS_15TrivialNonfinalE<
'a,
>(
trivial: &'a crate::ns::TrivialNonfinal,
) -> &'a crate::ns::TrivialNonfinal;
#[link_name = "_ZN2ns22TakesByRvalueReferenceEONS_7TrivialE"]
pub(crate) fn __rust_thunk___ZN2ns22TakesByRvalueReferenceEONS_7TrivialE<'a>(
trivial: ::ctor::RvalueReference<'a, crate::ns::Trivial>,
) -> ::ctor::RvalueReference<'a, crate::ns::Trivial>;
#[link_name = "_ZN2ns37TakesTrivialNonfinalByRvalueReferenceEONS_15TrivialNonfinalE"]
pub(crate) fn __rust_thunk___ZN2ns37TakesTrivialNonfinalByRvalueReferenceEONS_15TrivialNonfinalE<
'a,
>(
trivial: ::ctor::RvalueReference<'a, crate::ns::TrivialNonfinal>,
) -> ::ctor::RvalueReference<'a, crate::ns::TrivialNonfinal>;
#[link_name = "_ZN2ns27TakesByConstRvalueReferenceEOKNS_7TrivialE"]
pub(crate) fn __rust_thunk___ZN2ns27TakesByConstRvalueReferenceEOKNS_7TrivialE<'a>(
trivial: ::ctor::ConstRvalueReference<'a, crate::ns::Trivial>,
) -> ::ctor::ConstRvalueReference<'a, crate::ns::Trivial>;
#[link_name = "_ZN2ns42TakesTrivialNonfinalByConstRvalueReferenceEOKNS_15TrivialNonfinalE"]
pub(crate) fn __rust_thunk___ZN2ns42TakesTrivialNonfinalByConstRvalueReferenceEOKNS_15TrivialNonfinalE<
'a,
>(
trivial: ::ctor::ConstRvalueReference<'a, crate::ns::TrivialNonfinal>,
) -> ::ctor::ConstRvalueReference<'a, crate::ns::TrivialNonfinal>;
}
}
const _: () = {
assert!(::core::mem::size_of::<crate::ns::Trivial>() == 4);
assert!(::core::mem::align_of::<crate::ns::Trivial>() == 4);
static_assertions::assert_impl_all!(crate::ns::Trivial: Clone);
static_assertions::assert_impl_all!(crate::ns::Trivial: Copy);
static_assertions::assert_not_impl_any!(crate::ns::Trivial: Drop);
assert!(::core::mem::offset_of!(crate::ns::Trivial, trivial_field) == 0);
assert!(::core::mem::size_of::<crate::ns::TrivialNonfinal>() == 4);
assert!(::core::mem::align_of::<crate::ns::TrivialNonfinal>() == 4);
static_assertions::assert_impl_all!(crate::ns::TrivialNonfinal: Clone);
static_assertions::assert_impl_all!(crate::ns::TrivialNonfinal: Copy);
static_assertions::assert_not_impl_any!(crate::ns::TrivialNonfinal: Drop);
assert!(::core::mem::offset_of!(crate::ns::TrivialNonfinal, trivial_field) == 0);
};