qtbridge_interfaces/qtable_model/
proxy_rust_bridge.rs

1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only
3
4use super::proxy_rust::QTableModelProxyRust;
5#[cxx::bridge]
6pub mod ffi {
7    unsafe extern "C++" {
8        include!("qtbridge-type-lib/src/generated/core/qhash/cpp/qhash_i32_qbytearray.h");
9        type QHash_i32_QByteArray = qtbridge_type_lib::QHash_i32_QByteArray;
10        include!("qtbridge-type-lib/src/generated/core/qmodelindex/cpp/qmodelindex.h");
11        type QModelIndex = qtbridge_type_lib::QModelIndex;
12        include!("qtbridge-type-lib/src/generated/core/qvariant/cpp/qvariant.h");
13        type QVariant = qtbridge_type_lib::QVariant;
14    }
15    extern "Rust" {
16        type QTableModelProxyRust;
17        # [Self = QTableModelProxyRust]
18        # [cxx_name = dropSelf]
19        unsafe fn drop_self(self_ptr: *mut QTableModelProxyRust);
20        # [cxx_name = index]
21        fn index(&self, row: i32, column: i32, parent: &QModelIndex) -> QModelIndex;
22        # [cxx_name = parent]
23        fn parent(&self, child: &QModelIndex) -> QModelIndex;
24        # [cxx_name = rowCount]
25        fn row_count(&self, parent: &QModelIndex) -> i32;
26        # [cxx_name = columnCount]
27        fn column_count(&self, parent: &QModelIndex) -> i32;
28        # [cxx_name = data]
29        fn data(&self, index: &QModelIndex, role: i32) -> QVariant;
30        # [cxx_name = roleNames]
31        fn role_names(&self) -> QHash_i32_QByteArray;
32        # [cxx_name = setData]
33        fn set_data(&mut self, index: &QModelIndex, value: &QVariant, role: i32) -> bool;
34        # [cxx_name = removeColumns]
35        fn remove_columns(&mut self, first: i32, count: i32, parent: &QModelIndex) -> bool;
36        # [cxx_name = removeRows]
37        fn remove_rows(&mut self, first: i32, count: i32, parent: &QModelIndex) -> bool;
38        # [cxx_name = sibling]
39        fn sibling(&self, row: i32, column: i32, idx: &QModelIndex) -> QModelIndex;
40
41        # [cxx_name = invokeSlot]
42        fn invoke_slot(&self, slot_id: u32, inputs: &[*const u8], outputs: &[*mut u8]);
43        # [cxx_name = invokeSlotMut]
44        fn invoke_slot_mut(&mut self, slot_id: u32, inputs: &[*const u8], outputs: &[*mut u8]);
45        # [cxx_name = readProperty]
46        fn read_property(&self, prop_id: u32) -> QVariant;
47        # [cxx_name = writeProperty]
48        fn write_property(&mut self, prop_id: u32, value: &QVariant);
49    }
50}
51unsafe impl cxx::ExternType for QTableModelProxyRust {
52    type Id = cxx::type_id!(QTableModelProxyRust);
53    type Kind = cxx::kind::Trivial;
54}