blob: 403f4e336581fedfab863fd199585e5dc00e6974 [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:polymorphic_cc
// Features: experimental, non_extern_c_functions, supported
#include "support/internal/cxx20_backports.h"
#include "support/internal/offsetof.h"
#include "support/internal/sizeof.h"
#include <cstddef>
#include <memory>
// Public headers of the C++ library being wrapped.
#include "rs_bindings_from_cc/test/golden/polymorphic.h"
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wthread-safety-analysis"
static_assert(CRUBIT_SIZEOF(class PolymorphicBase) == 8);
static_assert(alignof(class PolymorphicBase) == 8);
extern "C" void __rust_thunk___ZN15PolymorphicBaseC1Ev(
class PolymorphicBase* __this) {
crubit::construct_at(__this);
}
extern "C" void __rust_thunk___ZN15PolymorphicBaseC1ERKS_(
class PolymorphicBase* __this, const class PolymorphicBase* __param_0) {
crubit::construct_at(__this, *__param_0);
}
extern "C" class PolymorphicBase* __rust_thunk___ZN15PolymorphicBaseaSERKS_(
class PolymorphicBase* __this, const class PolymorphicBase* __param_0) {
return &__this->operator=(*__param_0);
}
extern "C" void __rust_thunk___ZN15PolymorphicBaseD1Ev(
class PolymorphicBase* __this) {
std::destroy_at(__this);
}
static_assert(CRUBIT_SIZEOF(class PolymorphicBase2) == 8);
static_assert(alignof(class PolymorphicBase2) == 8);
extern "C" void __rust_thunk___ZN16PolymorphicBase2C1Ev(
class PolymorphicBase2* __this) {
crubit::construct_at(__this);
}
extern "C" void __rust_thunk___ZN16PolymorphicBase2C1ERKS_(
class PolymorphicBase2* __this, const class PolymorphicBase2* __param_0) {
crubit::construct_at(__this, *__param_0);
}
extern "C" class PolymorphicBase2* __rust_thunk___ZN16PolymorphicBase2aSERKS_(
class PolymorphicBase2* __this, const class PolymorphicBase2* __param_0) {
return &__this->operator=(*__param_0);
}
extern "C" void __rust_thunk___ZN16PolymorphicBase23FooEv(
class PolymorphicBase2* __this) {
__this->Foo();
}
extern "C" void __rust_thunk___ZN16PolymorphicBase2D1Ev(
class PolymorphicBase2* __this) {
std::destroy_at(__this);
}
static_assert(CRUBIT_SIZEOF(class PolymorphicDerived) == 16);
static_assert(alignof(class PolymorphicDerived) == 8);
extern "C" void __rust_thunk___ZN18PolymorphicDerivedC1Ev(
class PolymorphicDerived* __this) {
crubit::construct_at(__this);
}
extern "C" void __rust_thunk___ZN18PolymorphicDerivedC1ERKS_(
class PolymorphicDerived* __this,
const class PolymorphicDerived* __param_0) {
crubit::construct_at(__this, *__param_0);
}
extern "C" void __rust_thunk___ZN18PolymorphicDerivedC1EOS_(
class PolymorphicDerived* __this, class PolymorphicDerived* __param_0) {
crubit::construct_at(__this, std::move(*__param_0));
}
extern "C" void __rust_thunk___ZN18PolymorphicDerivedD1Ev(
class PolymorphicDerived* __this) {
std::destroy_at(__this);
}
extern "C" class PolymorphicDerived*
__rust_thunk___ZN18PolymorphicDerivedaSERKS_(
class PolymorphicDerived* __this,
const class PolymorphicDerived* __param_0) {
return &__this->operator=(*__param_0);
}
extern "C" class PolymorphicDerived*
__rust_thunk___ZN18PolymorphicDerivedaSEOS_(
class PolymorphicDerived* __this, class PolymorphicDerived* __param_0) {
return &__this->operator=(std::move(*__param_0));
}
#pragma clang diagnostic pop