File indexing completed on 2024-04-21 05:44:56

0001 /* generated by rust_qt_binding_generator */
0002 #include "test_functions_rust.h"
0003 
0004 namespace {
0005 
0006     typedef void (*qstring_set)(QString* val, const char* utf8, int nbytes);
0007     void set_qstring(QString* val, const char* utf8, int nbytes) {
0008         *val = QString::fromUtf8(utf8, nbytes);
0009     }
0010 
0011     typedef void (*qbytearray_set)(QByteArray* val, const char* bytes, int nbytes);
0012     void set_qbytearray(QByteArray* v, const char* bytes, int nbytes) {
0013         if (v->isNull() && nbytes == 0) {
0014             *v = QByteArray(bytes, nbytes);
0015         } else {
0016             v->truncate(0);
0017             v->append(bytes, nbytes);
0018         }
0019     }
0020     inline void personUserNameChanged(Person* o)
0021     {
0022         Q_EMIT o->userNameChanged();
0023     }
0024 }
0025 extern "C" {
0026     Person::Private* person_new(Person*, void (*)(Person*));
0027     void person_free(Person::Private*);
0028     void person_user_name_get(const Person::Private*, QString*, qstring_set);
0029     void person_user_name_set(Person::Private*, const ushort *str, int len);
0030     void person_append(Person::Private*, const ushort*, int, quint32);
0031     void person_double_name(Person::Private*);
0032     void person_greet(const Person::Private*, const ushort*, int, QString*, qstring_set);
0033     void person_quote(const Person::Private*, const ushort*, int, const ushort*, int, QString*, qstring_set);
0034     void person_quote_bytes(const Person::Private*, const char*, int, const char*, int, QByteArray*, qbytearray_set);
0035     quint8 person_vowels_in_name(const Person::Private*);
0036 };
0037 
0038 Person::Person(bool /*owned*/, QObject *parent):
0039     QObject(parent),
0040     m_d(nullptr),
0041     m_ownsPrivate(false)
0042 {
0043 }
0044 
0045 Person::Person(QObject *parent):
0046     QObject(parent),
0047     m_d(person_new(this,
0048         personUserNameChanged)),
0049     m_ownsPrivate(true)
0050 {
0051 }
0052 
0053 Person::~Person() {
0054     if (m_ownsPrivate) {
0055         person_free(m_d);
0056     }
0057 }
0058 QString Person::userName() const
0059 {
0060     QString v;
0061     person_user_name_get(m_d, &v, set_qstring);
0062     return v;
0063 }
0064 void Person::setUserName(const QString& v) {
0065     person_user_name_set(m_d, reinterpret_cast<const ushort*>(v.data()), v.size());
0066 }
0067 void Person::append(const QString& suffix, quint32 amount)
0068 {
0069     return person_append(m_d, suffix.utf16(), suffix.size(), amount);
0070 }
0071 void Person::doubleName()
0072 {
0073     return person_double_name(m_d);
0074 }
0075 QString Person::greet(const QString& name) const
0076 {
0077     QString s;
0078     person_greet(m_d, name.utf16(), name.size(), &s, set_qstring);
0079     return s;
0080 }
0081 QString Person::quote(const QString& prefix, const QString& suffix) const
0082 {
0083     QString s;
0084     person_quote(m_d, prefix.utf16(), prefix.size(), suffix.utf16(), suffix.size(), &s, set_qstring);
0085     return s;
0086 }
0087 QByteArray Person::quoteBytes(const QByteArray& prefix, const QByteArray& suffix) const
0088 {
0089     QByteArray s;
0090     person_quote_bytes(m_d, prefix.data(), prefix.size(), suffix.data(), suffix.size(), &s, set_qbytearray);
0091     return s;
0092 }
0093 quint8 Person::vowelsInName() const
0094 {
0095     return person_vowels_in_name(m_d);
0096 }