qtbridge-interfaces 0.1.4

Qt Bridge: Proxies and interfaces between Rust and Qt
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only

#include "QObjectProxyCpp.h"

namespace rust::bridge {

QObjectProxyCpp::QObjectProxyCpp(uint8_t* rustObj, QObjectProxyRust* rustProxy)
    :  RustObjectGetter(rustObj)
    , m_rustProxy(rustProxy)
{}
QObjectProxyCpp::~QObjectProxyCpp()
{
    QObjectProxyRust::dropSelf(m_rustProxy, m_rustObj);
}


// Functions for object construction

QObjectProxyCpp* create_QObjectProxyCpp(uint8_t* rustObj, QObjectProxyRust* rustProxy)
{
    return new QObjectProxyCpp(rustObj, rustProxy);
}

QObjectProxyCpp* create_QObjectProxyCpp_At(uint8_t* addr, uint8_t* rustObj, QObjectProxyRust* rustProxy)
{
    return new (addr) QObjectProxyCpp(rustObj, rustProxy);
}

const QMetaObject& staticQMetaObjectOf_QObjectProxyCpp()
{
    return QObject::staticMetaObject;
}

size_t sizeOf_QObjectProxyCpp()
{
    return sizeof(QObjectProxyCpp);
}

size_t alignOf_QObjectProxyCpp()
{
    return alignof(QObjectProxyCpp);
}

QMetaType qmetaTypeListOf_QObjectProxyCpp()
{
    return QMetaType::fromType<QQmlListProperty<QObjectProxyCpp>>();
}

} // namespace rust::bridge