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

211 lines
5.5 KiB
C++
Raw Normal View History

2017-08-11 12:55:51 -07:00
/* generated by rust_qt_binding_generator */
#include "test_object_types_rust.h"
namespace {
template <typename T>
struct option {
public:
T value;
bool some;
operator QVariant() const {
if (some) {
return QVariant(value);
}
return QVariant();
}
};
2017-08-11 12:55:51 -07:00
struct qbytearray_t {
private:
const char* data;
int len;
public:
qbytearray_t(const QByteArray& v):
data(v.data()),
len(v.size()) {
}
operator QByteArray() const {
return QByteArray(data, len);
}
};
struct qstring_t {
private:
const void* data;
int len;
public:
qstring_t(const QString& v):
data(static_cast<const void*>(v.utf16())),
len(v.size()) {
}
operator QString() const {
return QString::fromUtf8(static_cast<const char*>(data), len);
}
};
2017-08-13 08:01:52 -07:00
struct qmodelindex_t {
int row;
quintptr id;
};
2017-08-26 10:10:18 -07:00
inline void objectBooleanChanged(Object* o)
{
emit o->booleanChanged();
}
inline void objectBytearrayChanged(Object* o)
{
emit o->bytearrayChanged();
}
inline void objectIntegerChanged(Object* o)
{
emit o->integerChanged();
}
inline void objectOptionalBytearrayChanged(Object* o)
{
emit o->optionalBytearrayChanged();
}
inline void objectOptionalStringChanged(Object* o)
{
emit o->optionalStringChanged();
}
inline void objectStringChanged(Object* o)
{
emit o->stringChanged();
}
inline void objectU64Changed(Object* o)
{
emit o->u64Changed();
}
inline void objectUintegerChanged(Object* o)
{
emit o->uintegerChanged();
}
2017-08-11 12:55:51 -07:00
}
typedef void (*qstring_set)(QString*, qstring_t*);
void set_qstring(QString* v, qstring_t* val) {
*v = *val;
}
typedef void (*qbytearray_set)(QByteArray*, qbytearray_t*);
void set_qbytearray(QByteArray* v, qbytearray_t* val) {
*v = *val;
}
extern "C" {
2017-08-18 02:44:37 -07:00
Object::Private* object_new(Object*, void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*), void (*)(Object*));
2017-08-15 04:49:28 -07:00
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*, qbytearray_t);
2017-08-21 15:51:48 -07:00
qint32 object_integer_get(const Object::Private*);
void object_integer_set(Object::Private*, qint32);
2017-08-18 02:44:37 -07:00
void object_optional_bytearray_get(const Object::Private*, QByteArray*, qbytearray_set);
void object_optional_bytearray_set(Object::Private*, qbytearray_t);
void object_optional_bytearray_set_none(Object::Private*);
2017-08-21 15:51:48 -07:00
void object_optional_string_get(const Object::Private*, QString*, qstring_set);
void object_optional_string_set(Object::Private*, qstring_t);
void object_optional_string_set_none(Object::Private*);
void object_string_get(const Object::Private*, QString*, qstring_set);
void object_string_set(Object::Private*, qstring_t);
quint64 object_u64_get(const Object::Private*);
void object_u64_set(Object::Private*, quint64);
quint32 object_uinteger_get(const Object::Private*);
void object_uinteger_set(Object::Private*, uint);
2017-08-11 12:55:51 -07:00
};
2017-08-26 10:10:18 -07:00
Object::Object(bool /*owned*/, QObject *parent):
QObject(parent),
m_d(0),
m_ownsPrivate(false)
{
}
2017-08-12 03:49:37 -07:00
Object::Object(QObject *parent):
2017-08-11 12:55:51 -07:00
QObject(parent),
2017-08-26 10:10:18 -07:00
m_d(object_new(this,
objectBooleanChanged,
objectBytearrayChanged,
objectIntegerChanged,
objectOptionalBytearrayChanged,
objectOptionalStringChanged,
objectStringChanged,
objectU64Changed,
objectUintegerChanged)),
m_ownsPrivate(true)
{
2017-08-26 10:10:18 -07:00
}
2017-08-11 12:55:51 -07:00
2017-08-12 03:49:37 -07:00
Object::~Object() {
2017-08-26 10:10:18 -07:00
if (m_ownsPrivate) {
object_free(m_d);
}
2017-08-11 12:55:51 -07:00
}
2017-08-12 10:21:35 -07:00
bool Object::boolean() const
2017-08-11 12:55:51 -07:00
{
2017-08-26 10:10:18 -07:00
return object_boolean_get(m_d);
2017-08-12 10:21:35 -07:00
}
void Object::setBoolean(bool v) {
2017-08-26 10:10:18 -07:00
object_boolean_set(m_d, v);
2017-08-12 10:21:35 -07:00
}
2017-08-21 15:51:48 -07:00
QByteArray Object::bytearray() const
{
QByteArray v;
2017-08-26 10:10:18 -07:00
object_bytearray_get(m_d, &v, set_qbytearray);
2017-08-21 15:51:48 -07:00
return v;
}
void Object::setBytearray(const QByteArray& v) {
2017-08-26 10:10:18 -07:00
object_bytearray_set(m_d, v);
2017-08-21 15:51:48 -07:00
}
2017-08-16 15:11:08 -07:00
qint32 Object::integer() const
2017-08-12 10:21:35 -07:00
{
2017-08-26 10:10:18 -07:00
return object_integer_get(m_d);
2017-08-12 10:21:35 -07:00
}
2017-08-16 15:11:08 -07:00
void Object::setInteger(qint32 v) {
2017-08-26 10:10:18 -07:00
object_integer_set(m_d, v);
2017-08-12 10:21:35 -07:00
}
2017-08-21 15:51:48 -07:00
QByteArray Object::optionalBytearray() const
2017-08-12 10:21:35 -07:00
{
2017-08-21 15:51:48 -07:00
QByteArray v;
2017-08-26 10:10:18 -07:00
object_optional_bytearray_get(m_d, &v, set_qbytearray);
2017-08-12 10:21:35 -07:00
return v;
}
2017-08-21 15:51:48 -07:00
void Object::setOptionalBytearray(const QByteArray& v) {
if (v.isNull()) {
2017-08-26 10:10:18 -07:00
object_optional_bytearray_set_none(m_d);
2017-08-21 15:51:48 -07:00
} else {
2017-08-26 10:10:18 -07:00
object_optional_bytearray_set(m_d, v);
2017-08-21 15:51:48 -07:00
}
2017-08-12 10:21:35 -07:00
}
2017-08-18 02:44:37 -07:00
QString Object::optionalString() const
{
QString v;
2017-08-26 10:10:18 -07:00
object_optional_string_get(m_d, &v, set_qstring);
2017-08-18 02:44:37 -07:00
return v;
}
void Object::setOptionalString(const QString& v) {
if (v.isNull()) {
2017-08-26 10:10:18 -07:00
object_optional_string_set_none(m_d);
} else {
2017-08-26 10:10:18 -07:00
object_optional_string_set(m_d, v);
}
2017-08-18 02:44:37 -07:00
}
2017-08-21 15:51:48 -07:00
QString Object::string() const
2017-08-12 10:21:35 -07:00
{
2017-08-21 15:51:48 -07:00
QString v;
2017-08-26 10:10:18 -07:00
object_string_get(m_d, &v, set_qstring);
2017-08-11 12:55:51 -07:00
return v;
}
2017-08-21 15:51:48 -07:00
void Object::setString(const QString& v) {
2017-08-26 10:10:18 -07:00
object_string_set(m_d, v);
2017-08-11 12:55:51 -07:00
}
2017-08-21 15:51:48 -07:00
quint64 Object::u64() const
2017-08-18 02:44:37 -07:00
{
2017-08-26 10:10:18 -07:00
return object_u64_get(m_d);
2017-08-18 02:44:37 -07:00
}
2017-08-21 15:51:48 -07:00
void Object::setU64(quint64 v) {
2017-08-26 10:10:18 -07:00
object_u64_set(m_d, v);
2017-08-21 15:51:48 -07:00
}
quint32 Object::uinteger() const
{
2017-08-26 10:10:18 -07:00
return object_uinteger_get(m_d);
2017-08-21 15:51:48 -07:00
}
void Object::setUinteger(uint v) {
2017-08-26 10:10:18 -07:00
object_uinteger_set(m_d, v);
2017-08-18 02:44:37 -07:00
}