#pragma once
#include <cstdint>
#include <QtCore/QHash>
#include <QtCore/QByteArray>
#include <QtCore/QString>
#include <QtCore/QVariant>
#include "rust/cxx.h"
namespace rust {
template<typename K, typename V>
struct IsRelocatable<QHash<K, V>> : ::std::true_type
{
};
}
namespace rust {
namespace cxxqtlib1 {
namespace qhash {
template<typename K, typename V>
::rust::isize
qhashLen(const QHash<K, V>& h) noexcept;
template<typename K, typename V>
V
qhashGetOrDefault(const QHash<K, V>& h, const K& key) noexcept
{
return h.value(key);
}
template<typename K, typename V>
const K&
qhashGetUncheckedKey(const QHash<K, V>& h, ::rust::isize pos) noexcept
{
Q_ASSERT(pos < qhashLen(h));
Q_ASSERT(pos >= 0);
auto it = h.cbegin();
::std::advance(it, pos);
return it.key();
}
template<typename K, typename V>
const V&
qhashGetUncheckedValue(const QHash<K, V>& h, ::rust::isize pos) noexcept
{
Q_ASSERT(pos < qhashLen(h));
Q_ASSERT(pos >= 0);
auto it = h.cbegin();
::std::advance(it, pos);
return it.value();
}
template<typename K, typename V>
void
qhashInsert(QHash<K, V>& h, const K& key, const V& value) noexcept
{
h.insert(key, value);
}
template<typename K, typename V>
::rust::isize
qhashLen(const QHash<K, V>& h) noexcept
{
return static_cast<::rust::isize>(h.size());
}
template<typename K, typename V>
bool
qhashRemove(QHash<K, V>& h, const K& key) noexcept
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return h.remove(key);
#else
return h.remove(key) >= 1;
#endif
}
}
}
}
using QHash_i32_QByteArray = QHash<::std::int32_t, QByteArray>;
using QHash_QString_QVariant = QHash<QString, QVariant>;