diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/pymethoddefentry.cpp')
-rw-r--r-- | sources/shiboken6/ApiExtractor/pymethoddefentry.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/pymethoddefentry.cpp b/sources/shiboken6/ApiExtractor/pymethoddefentry.cpp new file mode 100644 index 000000000..64d44378b --- /dev/null +++ b/sources/shiboken6/ApiExtractor/pymethoddefentry.cpp @@ -0,0 +1,53 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "pymethoddefentry.h" +#include "textstream.h" + +#include <QtCore/QDebug> + +TextStream &operator<<(TextStream &str, const castToPyCFunction &c) +{ + str << "reinterpret_cast<PyCFunction>(" << c.m_function << ')'; + return str; +} + +TextStream &operator<<(TextStream &s, const PyMethodDefEntry &e) +{ + s << "{\"" << e.name << "\", " << castToPyCFunction(e.function) <<", "; + if (e.methFlags.isEmpty()) { + s << '0'; + } else { + for (qsizetype i = 0, size = e.methFlags.size(); i < size; ++i) { + if (i) + s << '|'; + s << e.methFlags.at(i); + } + } + if (e.doc.isEmpty()) + s << ", nullptr"; + else + s << ", R\"(" << e.doc << ")\""; + s << '}'; + return s; +} + +TextStream &operator<<(TextStream &s, const PyMethodDefEntries &entries) +{ + for (const auto &e : entries) + s << e << ",\n"; + return s; +} + +QDebug operator<<(QDebug debug, const PyMethodDefEntry &e) +{ + QDebugStateSaver saver(debug); + debug.noquote(); + debug.nospace(); + debug << "PyMethodDefEntry(\"" << e.name << "\", " << e.function + << ", " << e.methFlags; + if (!e.doc.isEmpty()) + debug << ", \"" << e.doc << '"'; + debug << ')'; + return debug; +} |