File indexing completed on 2023-05-30 12:24:34
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 }