Translate camelCase binding function names to snake_case

master
Jos van den Oever 2018-01-26 21:43:24 +01:00
parent 1a5c019594
commit 57f73256a2
6 changed files with 15 additions and 13 deletions

View File

@ -689,7 +689,8 @@ void writeObjectCDecl(QTextStream& cpp, const Object& o, const Configuration& co
}
for (const Function& f: o.functions) {
const QString name = QString("%1_%2").arg(lcname, f.name);
const QString lc(snakeCase(f.name));
const QString name = QString("%1_%2").arg(lcname, lc);
cpp << QString(" %1 %2(%4%3::Private*")
.arg(f.type.cSetType, name, o.name, f.mut ? "" : "const ");
if (f.args.size() > 0) {
@ -845,8 +846,8 @@ void writeCppObject(QTextStream& cpp, const Object& o, const Configuration& conf
for (auto a = f.args.begin(); a < f.args.end(); a++) {
cpp << QString("%1 %2%3").arg(a->type.cppSetType, a->name, a + 1 < f.args.end() ? ", " : "");
}
cpp << QString(") %4\n{\n")
.arg(f.mut ? "" : "const");
cpp << QString(")%1\n{\n")
.arg(f.mut ? "" : " const");
QString argList;
if (f.args.size() > 0) {
argList.append(", ");

View File

@ -425,6 +425,7 @@ pub unsafe extern "C" fn %2_set(ptr: *mut %1, v: %4) {
}
}
for (const Function& f: o.functions) {
const QString lc(snakeCase(f.name));
QString argList;
QString noTypeArgs;
if (f.args.size() > 0) {
@ -443,7 +444,7 @@ pub unsafe extern "C" fn %1_%2(ptr: *%3 %4%7, d: *mut c_void, set: fn(*mut c_voi
let data = (&%6*ptr).%2(%8);
set(d, (&data).into());
}
)").arg(lcname, f.name, f.mut ? "mut" : "const", o.name, f.type.name, f.mut ? "mut " : "", argList, noTypeArgs);
)").arg(lcname, lc, f.mut ? "mut" : "const", o.name, f.type.name, f.mut ? "mut " : "", argList, noTypeArgs);
} else {
r << QString(R"(
@ -451,7 +452,7 @@ pub unsafe extern "C" fn %1_%2(ptr: *%3 %4%7, d: *mut c_void, set: fn(*mut c_voi
pub unsafe extern "C" fn %1_%2(ptr: *%3 %4%7) -> %5 {
(&%6*ptr).%2(%8)
}
)").arg(lcname, f.name, f.mut ? "mut" : "const", o.name, f.type.rustType, f.mut ? "mut " : "", argList, noTypeArgs);
)").arg(lcname, lc, f.mut ? "mut" : "const", o.name, f.type.rustType, f.mut ? "mut " : "", argList, noTypeArgs);
}
}
if (o.type == ObjectType::List) {

View File

@ -44,7 +44,7 @@ void TestRustObject::testSimpleFunction()
person.setUserName("Konqi");
// THEN
QCOMPARE((int)person.vowels_in_name(), 2);
QCOMPARE((int)person.vowelsInName(), 2);
}
void TestRustObject::testVoidFunction()
@ -54,7 +54,7 @@ void TestRustObject::testVoidFunction()
person.setUserName("Konqi");
// THEN
person.double_name();
person.doubleName();
QCOMPARE(person.userName(), QString("KonqiKonqi"));
}

View File

@ -25,12 +25,12 @@
}
]
},
"double_name": {
"doubleName": {
"return": "void",
"mut": true,
"arguments": []
},
"vowels_in_name": {
"vowelsInName": {
"return": "quint8",
"arguments": []
}

View File

@ -64,7 +64,7 @@ QString Person::userName() const
void Person::setUserName(const QString& v) {
person_user_name_set(m_d, v);
}
void Person::double_name()
void Person::doubleName()
{
return person_double_name(m_d);
}
@ -74,7 +74,7 @@ QString Person::greet(const QString& Name) const
person_greet(m_d, Name, &s, set_qstring);
return s;
}
quint8 Person::vowels_in_name() const
quint8 Person::vowelsInName() const
{
return person_vowels_in_name(m_d);
}

View File

@ -22,9 +22,9 @@ public:
~Person();
QString userName() const;
void setUserName(const QString& v);
Q_INVOKABLE void double_name();
Q_INVOKABLE void doubleName();
Q_INVOKABLE QString greet(const QString& Name) const;
Q_INVOKABLE quint8 vowels_in_name() const;
Q_INVOKABLE quint8 vowelsInName() const;
signals:
void userNameChanged();
};