qtbridge_runtime/
dynamicmetaobjectbuilder.rs1use crate::DynamicMetaObjectData;
5
6#[cxx::bridge]
7pub mod ffi {
8
9 #[repr(i8)]
10 enum Mutability {
11 Immutable,
12 Mutable,
13 }
14
15 unsafe extern "C++" {
16 include!("cpp/dynamicmetaobjectdata.h");
17 type DynamicMetaObjectData = super::DynamicMetaObjectData;
18
19 include!("qtbridge-type-lib/src/generated/core/qmetaobject/cpp/qmetaobject.h");
20 type QMetaObject = qtbridge_type_lib::QMetaObject;
21
22 include!("qtbridge-type-lib/src/generated/core/qmetatype/cpp/qmetatype.h");
23 type QMetaType = qtbridge_type_lib::QMetaType;
24
25 include!("qtbridge-type-lib/src/generated/core/qobject/cpp/qobject.h");
26 type QObject = qtbridge_type_lib::QObject;
27
28 include!("qtbridge-type-lib/src/generated/core/qvariant/cpp/qvariant.h");
29 type QVariant = qtbridge_type_lib::QVariant;
30
31 include!("cpp/dynamicmetaobjectdata.h");
32 type Mutability;
33 }
34
35 unsafe extern "C++" {
36 include!("cpp/dynamicmetaobjectbuilder.h");
37 type DynamicMetaObjectBuilder;
38
39 #[rust_name = "add_class_info"]
40 fn addClassInfo(self: Pin<&mut Self>, name: &str, value: &str);
41
42 #[rust_name = "register_property"]
43 fn registerProperty(self: Pin<&mut Self>, name: &str, prop_id: u32, meta_type: &QMetaType, is_constant: bool, notify_signal: &str);
44
45 #[rust_name = "register_signal"]
46 fn registerSignal(self: Pin<&mut Self>, name: &str, arg_meta_types: &[QMetaType]);
47
48 #[rust_name = "register_slot"]
49 fn registerSlot(self: Pin<&mut Self>, name: &str, slot_id: u32, arg_meta_types: &[QMetaType], return_meta_type: &QMetaType, mutability: Mutability);
50
51 #[rust_name = "end_meta_registration"]
52 fn endMetaRegistration(self: Pin<&mut Self>);
53
54 #[rust_name = "take_dynamic_metaobject_data"]
55 fn takeDynamicMetaObjectData(self: Pin<&mut Self>) -> *const DynamicMetaObjectData;
56
57 #[rust_name = "create_dynamic_meta_object_builder"]
58 fn createDynamicMetaObjectBuilder(rust_struct_name: &str, static_meta: &QMetaObject) -> UniquePtr<DynamicMetaObjectBuilder>;
59 }
60}
61
62pub use ffi::{DynamicMetaObjectBuilder, Mutability, create_dynamic_meta_object_builder};
65