rust-qt-binding-generator/tests/test_object_types_rust.cpp

363 lines
10 KiB
C++

/* generated by rust_qt_binding_generator */
#include "test_object_types_rust.h"
namespace {
struct option_bool {
public:
bool value;
bool some;
operator QVariant() const {
if (some) {
return QVariant::fromValue(value);
}
return QVariant();
}
};
static_assert(std::is_pod<option_bool>::value, "option_bool must be a POD type.");
struct option_quint64 {
public:
quint64 value;
bool some;
operator QVariant() const {
if (some) {
return QVariant::fromValue(value);
}
return QVariant();
}
};
static_assert(std::is_pod<option_quint64>::value, "option_quint64 must be a POD type.");
typedef void (*qstring_set)(QString* val, const char* utf8, int nbytes);
void set_qstring(QString* val, const char* utf8, int nbytes) {
*val = QString::fromUtf8(utf8, nbytes);
}
typedef void (*qbytearray_set)(QByteArray* val, const char* bytes, int nbytes);
void set_qbytearray(QByteArray* v, const char* bytes, int nbytes) {
if (v->isNull() && nbytes == 0) {
*v = QByteArray(bytes, nbytes);
} else {
v->truncate(0);
v->append(bytes, nbytes);
}
}
inline void objectBooleanChanged(Object* o)
{
Q_EMIT o->booleanChanged();
}
inline void objectBytearrayChanged(Object* o)
{
Q_EMIT o->bytearrayChanged();
}
inline void objectF32Changed(Object* o)
{
Q_EMIT o->f32Changed();
}
inline void objectF64Changed(Object* o)
{
Q_EMIT o->f64Changed();
}
inline void objectI16Changed(Object* o)
{
Q_EMIT o->i16Changed();
}
inline void objectI32Changed(Object* o)
{
Q_EMIT o->i32Changed();
}
inline void objectI64Changed(Object* o)
{
Q_EMIT o->i64Changed();
}
inline void objectI8Changed(Object* o)
{
Q_EMIT o->i8Changed();
}
inline void objectOptionalBooleanChanged(Object* o)
{
Q_EMIT o->optionalBooleanChanged();
}
inline void objectOptionalBytearrayChanged(Object* o)
{
Q_EMIT o->optionalBytearrayChanged();
}
inline void objectOptionalStringChanged(Object* o)
{
Q_EMIT o->optionalStringChanged();
}
inline void objectOptionalU64Changed(Object* o)
{
Q_EMIT o->optionalU64Changed();
}
inline void objectStringChanged(Object* o)
{
Q_EMIT o->stringChanged();
}
inline void objectStringByFunctionChanged(Object* o)
{
Q_EMIT o->stringByFunctionChanged();
}
inline void objectU16Changed(Object* o)
{
Q_EMIT o->u16Changed();
}
inline void objectU32Changed(Object* o)
{
Q_EMIT o->u32Changed();
}
inline void objectU64Changed(Object* o)
{
Q_EMIT o->u64Changed();
}
inline void objectU8Changed(Object* o)
{
Q_EMIT o->u8Changed();
}
}
extern "C" {
Object::Private* object_new(Object*, void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*));
void object_free(Object::Private*);
bool object_boolean_get(const Object::Private*);
void object_boolean_set(Object::Private*, bool);
void object_bytearray_get(const Object::Private*, QByteArray*, qbytearray_set);
void object_bytearray_set(Object::Private*, const char* bytes, int len);
float object_f32_get(const Object::Private*);
void object_f32_set(Object::Private*, float);
double object_f64_get(const Object::Private*);
void object_f64_set(Object::Private*, double);
qint16 object_i16_get(const Object::Private*);
void object_i16_set(Object::Private*, qint16);
qint32 object_i32_get(const Object::Private*);
void object_i32_set(Object::Private*, qint32);
qint64 object_i64_get(const Object::Private*);
void object_i64_set(Object::Private*, qint64);
qint8 object_i8_get(const Object::Private*);
void object_i8_set(Object::Private*, qint8);
option_bool object_optional_boolean_get(const Object::Private*);
void object_optional_boolean_set(Object::Private*, bool);
void object_optional_boolean_set_none(Object::Private*);
void object_optional_bytearray_get(const Object::Private*, QByteArray*, qbytearray_set);
void object_optional_bytearray_set(Object::Private*, const char* bytes, int len);
void object_optional_bytearray_set_none(Object::Private*);
void object_optional_string_get(const Object::Private*, QString*, qstring_set);
void object_optional_string_set(Object::Private*, const ushort *str, int len);
void object_optional_string_set_none(Object::Private*);
option_quint64 object_optional_u64_get(const Object::Private*);
void object_optional_u64_set(Object::Private*, quint64);
void object_optional_u64_set_none(Object::Private*);
void object_string_get(const Object::Private*, QString*, qstring_set);
void object_string_set(Object::Private*, const ushort *str, int len);
void object_string_by_function_get(const Object::Private*, QString*, qstring_set);
void object_string_by_function_set(Object::Private*, const ushort *str, int len);
quint16 object_u16_get(const Object::Private*);
void object_u16_set(Object::Private*, quint16);
quint32 object_u32_get(const Object::Private*);
void object_u32_set(Object::Private*, quint32);
quint64 object_u64_get(const Object::Private*);
void object_u64_set(Object::Private*, quint64);
quint8 object_u8_get(const Object::Private*);
void object_u8_set(Object::Private*, quint8);
};
Object::Object(bool /*owned*/, QObject *parent):
QObject(parent),
m_d(nullptr),
m_ownsPrivate(false)
{
}
Object::Object(QObject *parent):
QObject(parent),
m_d(object_new(this,
objectBooleanChanged,
objectBytearrayChanged,
objectF32Changed,
objectF64Changed,
objectI16Changed,
objectI32Changed,
objectI64Changed,
objectI8Changed,
objectOptionalBooleanChanged,
objectOptionalBytearrayChanged,
objectOptionalStringChanged,
objectOptionalU64Changed,
objectStringChanged,
objectStringByFunctionChanged,
objectU16Changed,
objectU32Changed,
objectU64Changed,
objectU8Changed)),
m_ownsPrivate(true)
{
}
Object::~Object() {
if (m_ownsPrivate) {
object_free(m_d);
}
}
bool Object::boolean() const
{
return object_boolean_get(m_d);
}
void Object::setBoolean(bool v) {
object_boolean_set(m_d, v);
}
QByteArray Object::bytearray() const
{
QByteArray v;
object_bytearray_get(m_d, &v, set_qbytearray);
return v;
}
void Object::setBytearray(const QByteArray& v) {
object_bytearray_set(m_d, v.data(), v.size());
}
float Object::f32() const
{
return object_f32_get(m_d);
}
void Object::setF32(float v) {
object_f32_set(m_d, v);
}
double Object::f64() const
{
return object_f64_get(m_d);
}
void Object::setF64(double v) {
object_f64_set(m_d, v);
}
qint16 Object::i16() const
{
return object_i16_get(m_d);
}
void Object::setI16(qint16 v) {
object_i16_set(m_d, v);
}
qint32 Object::i32() const
{
return object_i32_get(m_d);
}
void Object::setI32(qint32 v) {
object_i32_set(m_d, v);
}
qint64 Object::i64() const
{
return object_i64_get(m_d);
}
void Object::setI64(qint64 v) {
object_i64_set(m_d, v);
}
qint8 Object::i8() const
{
return object_i8_get(m_d);
}
void Object::setI8(qint8 v) {
object_i8_set(m_d, v);
}
QVariant Object::optionalBoolean() const
{
QVariant v;
auto r = object_optional_boolean_get(m_d);
if (r.some) {
v.setValue(r.value);
}
return r;
}
void Object::setOptionalBoolean(const QVariant& v) {
if (v.isNull() || !v.canConvert<bool>()) {
object_optional_boolean_set_none(m_d);
} else {
object_optional_boolean_set(m_d, v.value<bool>());
}
}
QByteArray Object::optionalBytearray() const
{
QByteArray v;
object_optional_bytearray_get(m_d, &v, set_qbytearray);
return v;
}
void Object::setOptionalBytearray(const QByteArray& v) {
if (v.isNull()) {
object_optional_bytearray_set_none(m_d);
} else {
object_optional_bytearray_set(m_d, v.data(), v.size());
}
}
QString Object::optionalString() const
{
QString v;
object_optional_string_get(m_d, &v, set_qstring);
return v;
}
void Object::setOptionalString(const QString& v) {
if (v.isNull()) {
object_optional_string_set_none(m_d);
} else {
object_optional_string_set(m_d, reinterpret_cast<const ushort*>(v.data()), v.size());
}
}
QVariant Object::optionalU64() const
{
QVariant v;
auto r = object_optional_u64_get(m_d);
if (r.some) {
v.setValue(r.value);
}
return r;
}
void Object::setOptionalU64(const QVariant& v) {
if (v.isNull() || !v.canConvert<quint64>()) {
object_optional_u64_set_none(m_d);
} else {
object_optional_u64_set(m_d, v.value<quint64>());
}
}
QString Object::string() const
{
QString v;
object_string_get(m_d, &v, set_qstring);
return v;
}
void Object::setString(const QString& v) {
object_string_set(m_d, reinterpret_cast<const ushort*>(v.data()), v.size());
}
QString Object::stringByFunction() const
{
QString v;
object_string_by_function_get(m_d, &v, set_qstring);
return v;
}
void Object::setStringByFunction(const QString& v) {
object_string_by_function_set(m_d, reinterpret_cast<const ushort*>(v.data()), v.size());
}
quint16 Object::u16() const
{
return object_u16_get(m_d);
}
void Object::setU16(quint16 v) {
object_u16_set(m_d, v);
}
quint32 Object::u32() const
{
return object_u32_get(m_d);
}
void Object::setU32(quint32 v) {
object_u32_set(m_d, v);
}
quint64 Object::u64() const
{
return object_u64_get(m_d);
}
void Object::setU64(quint64 v) {
object_u64_set(m_d, v);
}
quint8 Object::u8() const
{
return object_u8_get(m_d);
}
void Object::setU8(quint8 v) {
object_u8_set(m_d, v);
}