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) { 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*") cpp << QString(" %1 %2(%4%3::Private*")
.arg(f.type.cSetType, name, o.name, f.mut ? "" : "const "); .arg(f.type.cSetType, name, o.name, f.mut ? "" : "const ");
if (f.args.size() > 0) { 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++) { 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("%1 %2%3").arg(a->type.cppSetType, a->name, a + 1 < f.args.end() ? ", " : "");
} }
cpp << QString(") %4\n{\n") cpp << QString(")%1\n{\n")
.arg(f.mut ? "" : "const"); .arg(f.mut ? "" : " const");
QString argList; QString argList;
if (f.args.size() > 0) { if (f.args.size() > 0) {
argList.append(", "); 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) { for (const Function& f: o.functions) {
const QString lc(snakeCase(f.name));
QString argList; QString argList;
QString noTypeArgs; QString noTypeArgs;
if (f.args.size() > 0) { 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); let data = (&%6*ptr).%2(%8);
set(d, (&data).into()); 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 { } else {
r << QString(R"( 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 { pub unsafe extern "C" fn %1_%2(ptr: *%3 %4%7) -> %5 {
(&%6*ptr).%2(%8) (&%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) { if (o.type == ObjectType::List) {

View File

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

View File

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

View File

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

View File

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