From 57f73256a2c1a6bb6871b31808d1de91a2ee74ed Mon Sep 17 00:00:00 2001 From: Jos van den Oever Date: Fri, 26 Jan 2018 21:43:24 +0100 Subject: [PATCH] Translate camelCase binding function names to snake_case --- src/cpp.cpp | 7 ++++--- src/rust.cpp | 5 +++-- tests/test_functions.cpp | 4 ++-- tests/test_functions.json | 4 ++-- tests/test_functions_rust.cpp | 4 ++-- tests/test_functions_rust.h | 4 ++-- 6 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/cpp.cpp b/src/cpp.cpp index cf4f8c1..bba9ebf 100644 --- a/src/cpp.cpp +++ b/src/cpp.cpp @@ -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(", "); diff --git a/src/rust.cpp b/src/rust.cpp index c9b0748..b3b9f0d 100644 --- a/src/rust.cpp +++ b/src/rust.cpp @@ -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) { diff --git a/tests/test_functions.cpp b/tests/test_functions.cpp index 373f6fc..b5e2bc8 100644 --- a/tests/test_functions.cpp +++ b/tests/test_functions.cpp @@ -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")); } diff --git a/tests/test_functions.json b/tests/test_functions.json index b92cfae..7530807 100644 --- a/tests/test_functions.json +++ b/tests/test_functions.json @@ -25,12 +25,12 @@ } ] }, - "double_name": { + "doubleName": { "return": "void", "mut": true, "arguments": [] }, - "vowels_in_name": { + "vowelsInName": { "return": "quint8", "arguments": [] } diff --git a/tests/test_functions_rust.cpp b/tests/test_functions_rust.cpp index b07d8b8..76075aa 100644 --- a/tests/test_functions_rust.cpp +++ b/tests/test_functions_rust.cpp @@ -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); } diff --git a/tests/test_functions_rust.h b/tests/test_functions_rust.h index 9096f19..9f1ee5a 100644 --- a/tests/test_functions_rust.h +++ b/tests/test_functions_rust.h @@ -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(); };