aboutsummaryrefslogtreecommitdiff
path: root/tools/lxdrgen-cpp-qt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lxdrgen-cpp-qt.cpp')
-rw-r--r--tools/lxdrgen-cpp-qt.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/lxdrgen-cpp-qt.cpp b/tools/lxdrgen-cpp-qt.cpp
new file mode 100644
index 0000000..60e7293
--- /dev/null
+++ b/tools/lxdrgen-cpp-qt.cpp
@@ -0,0 +1,23 @@
+// lxdrgen-cpp-qt.cpp: Qt support code for lxdrgen-cpp.awk.
+//
+// Copyright (c) 2024, Přemysl Eric Janouch <p@janouch.name>
+// SPDX-License-Identifier: 0BSD
+#include <QString>
+#include <string>
+
+namespace LibertyXDR {
+
+bool utf8_to_wstring(const uint8_t *utf8, size_t length, std::wstring &wide) {
+ QByteArrayView view(reinterpret_cast<const char *>(utf8), length);
+ if (!view.isValidUtf8())
+ return false;
+ wide = QString::fromUtf8(view).toStdWString();
+ return true;
+}
+
+bool wstring_to_utf8(const std::wstring &wide, std::string &utf8) {
+ utf8 = QString::fromStdWString(wide).toUtf8().toStdString();
+ return true;
+}
+
+} // namespace LibertyXDR