cxx_qt_lib/core/qmap/
qmap_qstring_qvariant.rs

1// SPDX-FileCopyrightText: 2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
2// SPDX-FileContributor: Andrew Hayzen <andrew.hayzen@kdab.com>
3//
4// SPDX-License-Identifier: MIT OR Apache-2.0
5
6use cxx::{type_id, ExternType};
7
8#[cxx::bridge]
9pub mod ffi {
10    unsafe extern "C++" {
11        include!("cxx-qt-lib/qstring.h");
12        type QString = crate::QString;
13        include!("cxx-qt-lib/qvariant.h");
14        type QVariant = crate::QVariant;
15
16        include!("cxx-qt-lib/qmap.h");
17        type QMap_QString_QVariant = crate::QMap<super::QMapPair_QString_QVariant>;
18    }
19
20    unsafe extern "C++" {
21        #[rust_name = "cxx_clear"]
22        fn clear(self: &mut QMap_QString_QVariant);
23        #[rust_name = "cxx_contains"]
24        fn contains(self: &QMap_QString_QVariant, key: &QString) -> bool;
25    }
26
27    #[namespace = "rust::cxxqtlib1"]
28    unsafe extern "C++" {
29        include!("cxx-qt-lib/common.h");
30
31        #[rust_name = "qmap_clone_QString_QVariant"]
32        fn construct(_: &QMap_QString_QVariant) -> QMap_QString_QVariant;
33        #[rust_name = "qmap_default_QString_QVariant"]
34        fn construct() -> QMap_QString_QVariant;
35        #[rust_name = "qmap_drop_QString_QVariant"]
36        fn drop(_: &mut QMap_QString_QVariant);
37    }
38
39    #[namespace = "rust::cxxqtlib1::qmap"]
40    unsafe extern "C++" {
41        #[rust_name = "get_or_default_QString_QVariant"]
42        fn qmapGetOrDefault(_: &QMap_QString_QVariant, key: &QString) -> QVariant;
43        #[rust_name = "get_unchecked_key_QString_QVariant"]
44        unsafe fn qmapGetUncheckedKey(_: &QMap_QString_QVariant, pos: isize) -> &QString;
45        #[rust_name = "get_unchecked_value_QString_QVariant"]
46        unsafe fn qmapGetUncheckedValue(_: &QMap_QString_QVariant, pos: isize) -> &QVariant;
47        #[rust_name = "insert_QString_QVariant"]
48        fn qmapInsert(_: &mut QMap_QString_QVariant, key: &QString, value: &QVariant);
49        #[rust_name = "len_QString_QVariant"]
50        fn qmapLen(_: &QMap_QString_QVariant) -> isize;
51        #[rust_name = "remove_QString_QVariant"]
52        fn qmapRemove(_: &mut QMap_QString_QVariant, key: &QString) -> bool;
53    }
54}
55
56pub(crate) fn clone(map: &ffi::QMap_QString_QVariant) -> ffi::QMap_QString_QVariant {
57    ffi::qmap_clone_QString_QVariant(map)
58}
59
60pub(crate) fn default() -> ffi::QMap_QString_QVariant {
61    ffi::qmap_default_QString_QVariant()
62}
63
64pub(crate) fn drop(map: &mut ffi::QMap_QString_QVariant) {
65    ffi::qmap_drop_QString_QVariant(map);
66}
67
68pub(crate) fn get_or_default(
69    map: &ffi::QMap_QString_QVariant,
70    key: &ffi::QString,
71) -> ffi::QVariant {
72    ffi::get_or_default_QString_QVariant(map, key)
73}
74
75pub(crate) unsafe fn get_unchecked_key(
76    map: &ffi::QMap_QString_QVariant,
77    pos: isize,
78) -> &ffi::QString {
79    ffi::get_unchecked_key_QString_QVariant(map, pos)
80}
81
82pub(crate) unsafe fn get_unchecked_value(
83    map: &ffi::QMap_QString_QVariant,
84    pos: isize,
85) -> &ffi::QVariant {
86    ffi::get_unchecked_value_QString_QVariant(map, pos)
87}
88
89pub(crate) fn insert(
90    map: &mut ffi::QMap_QString_QVariant,
91    key: &ffi::QString,
92    value: &ffi::QVariant,
93) {
94    ffi::insert_QString_QVariant(map, key, value);
95}
96
97pub(crate) fn len(map: &ffi::QMap_QString_QVariant) -> isize {
98    ffi::len_QString_QVariant(map)
99}
100
101pub(crate) fn remove(map: &mut ffi::QMap_QString_QVariant, key: &ffi::QString) -> bool {
102    ffi::remove_QString_QVariant(map, key)
103}
104
105#[allow(non_camel_case_types)]
106pub struct QMapPair_QString_QVariant;
107
108unsafe impl ExternType for QMapPair_QString_QVariant {
109    type Id = type_id!("QMapPair_QString_QVariant");
110    type Kind = cxx::kind::Trivial;
111}