2017-10-14 16:56:03 -07:00
|
|
|
/* generated by rust_qt_binding_generator */
|
|
|
|
#include "test_functions_rust.h"
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
2018-05-12 04:58:43 -07:00
|
|
|
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);
|
2017-10-14 16:56:03 -07:00
|
|
|
}
|
|
|
|
inline void personUserNameChanged(Person* o)
|
|
|
|
{
|
|
|
|
emit o->userNameChanged();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
extern "C" {
|
|
|
|
Person::Private* person_new(Person*, void (*)(Person*));
|
|
|
|
void person_free(Person::Private*);
|
|
|
|
void person_user_name_get(const Person::Private*, QString*, qstring_set);
|
2018-05-12 04:58:43 -07:00
|
|
|
void person_user_name_set(Person::Private*, const ushort *str, int len);
|
2017-10-14 16:56:03 -07:00
|
|
|
void person_double_name(Person::Private*);
|
2018-05-12 04:58:43 -07:00
|
|
|
void person_greet(const Person::Private*, const ushort*, int, QString*, qstring_set);
|
2017-10-14 16:56:03 -07:00
|
|
|
quint8 person_vowels_in_name(const Person::Private*);
|
|
|
|
};
|
|
|
|
|
|
|
|
Person::Person(bool /*owned*/, QObject *parent):
|
|
|
|
QObject(parent),
|
|
|
|
m_d(0),
|
|
|
|
m_ownsPrivate(false)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Person::Person(QObject *parent):
|
|
|
|
QObject(parent),
|
|
|
|
m_d(person_new(this,
|
|
|
|
personUserNameChanged)),
|
|
|
|
m_ownsPrivate(true)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Person::~Person() {
|
|
|
|
if (m_ownsPrivate) {
|
|
|
|
person_free(m_d);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
QString Person::userName() const
|
|
|
|
{
|
|
|
|
QString v;
|
|
|
|
person_user_name_get(m_d, &v, set_qstring);
|
|
|
|
return v;
|
|
|
|
}
|
|
|
|
void Person::setUserName(const QString& v) {
|
2018-05-12 04:58:43 -07:00
|
|
|
person_user_name_set(m_d, reinterpret_cast<const ushort*>(v.data()), v.size());
|
2017-10-14 16:56:03 -07:00
|
|
|
}
|
2018-01-26 12:43:24 -08:00
|
|
|
void Person::doubleName()
|
2017-10-14 16:56:03 -07:00
|
|
|
{
|
|
|
|
return person_double_name(m_d);
|
|
|
|
}
|
|
|
|
QString Person::greet(const QString& Name) const
|
|
|
|
{
|
|
|
|
QString s;
|
2018-05-12 04:58:43 -07:00
|
|
|
person_greet(m_d, Name.utf16(), Name.size(), &s, set_qstring);
|
2017-10-14 16:56:03 -07:00
|
|
|
return s;
|
|
|
|
}
|
2018-01-26 12:43:24 -08:00
|
|
|
quint8 Person::vowelsInName() const
|
2017-10-14 16:56:03 -07:00
|
|
|
{
|
|
|
|
return person_vowels_in_name(m_d);
|
|
|
|
}
|