qtbridge_runtime/
qmlprivate.rs1#[doc(hidden)]
9#[cfg(feature = "linkme")]
10#[linkme::distributed_slice]
11pub static QML_REGISTER_CALLBACKS: [fn()];
12
13#[doc(hidden)]
14pub fn call_qml_register_callbacks() {
15 #[cfg(feature = "linkme")]
16 {
17 use std::sync::Once;
18 static INIT_ONCE: Once = Once::new();
19 INIT_ONCE.call_once(|| {
20 for reg_fn in QML_REGISTER_CALLBACKS {
21 reg_fn();
22 }
23 });
24 }
25}
26
27#[cxx::bridge]
28mod ffi {
29 unsafe extern "C++" {
30 include!("qtbridge-type-lib/src/core/qmetaobject/cpp/qmetaobject.h");
31 type QMetaObject = qtbridge_type_lib::QMetaObject;
32 include!("qtbridge-type-lib/src/core/qmetatype/cpp/qmetatype.h");
33 type QMetaType = qtbridge_type_lib::QMetaType;
34
35 include!("cpp/qmlprivate.h");
36 }
37 #[allow(clippy::too_many_arguments, clippy::missing_safety_doc)]
38 #[namespace = "rust::bridge::qmlprivate"]
39 unsafe extern "C++" {
40 unsafe fn qml_register_element(
50 type_id: QMetaType,
51 list_id: QMetaType,
52 object_size: u32,
53 parser_status_cast: i32,
54 create_fn: usize,
55 uri: &[u8],
56 version_major: u8,
57 version_minor: u8,
58 elm_name: &[u8],
59 meta_object: &'static QMetaObject,
60 );
61 unsafe fn qml_register_singleton(
68 type_id: QMetaType,
69 create_fn: usize,
70 uri: &[u8],
71 version_major: u8,
72 version_minor: u8,
73 elm_name: &[u8],
74 meta_object: &'static QMetaObject,
75 );
76 }
77}
78
79#[doc(hidden)]
80pub use ffi::{qml_register_element, qml_register_singleton};