cxx_qt_lib/core/qhash/
qhash_i32_qbytearray.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/qbytearray.h");
12        type QByteArray = crate::QByteArray;
13
14        include!("cxx-qt-lib/qhash.h");
15        type QHash_i32_QByteArray = crate::QHash<super::QHashPair_i32_QByteArray>;
16    }
17
18    unsafe extern "C++" {
19        #[rust_name = "cxx_clear"]
20        fn clear(self: &mut QHash_i32_QByteArray);
21        #[rust_name = "cxx_contains"]
22        fn contains(self: &QHash_i32_QByteArray, key: &i32) -> bool;
23    }
24
25    #[namespace = "rust::cxxqtlib1"]
26    unsafe extern "C++" {
27        include!("cxx-qt-lib/common.h");
28
29        #[rust_name = "qhash_clone_i32_QByteArray"]
30        fn construct(_: &QHash_i32_QByteArray) -> QHash_i32_QByteArray;
31        #[rust_name = "qhash_default_i32_QByteArray"]
32        fn construct() -> QHash_i32_QByteArray;
33        #[rust_name = "qhash_drop_i32_QByteArray"]
34        fn drop(_: &mut QHash_i32_QByteArray);
35    }
36
37    #[namespace = "rust::cxxqtlib1::qhash"]
38    unsafe extern "C++" {
39        #[rust_name = "get_or_default_i32_QByteArray"]
40        fn qhashGetOrDefault(_: &QHash_i32_QByteArray, key: &i32) -> QByteArray;
41        #[rust_name = "get_unchecked_key_i32_QByteArray"]
42        #[allow(clippy::needless_lifetimes)]
43        unsafe fn qhashGetUncheckedKey<'a>(_: &'a QHash_i32_QByteArray, pos: isize) -> &'a i32;
44        #[rust_name = "get_unchecked_value_i32_QByteArray"]
45        unsafe fn qhashGetUncheckedValue(_: &QHash_i32_QByteArray, pos: isize) -> &QByteArray;
46        #[rust_name = "insert_i32_QByteArray"]
47        fn qhashInsert(_: &mut QHash_i32_QByteArray, key: &i32, value: &QByteArray);
48        #[rust_name = "len_i32_QByteArray"]
49        fn qhashLen(_: &QHash_i32_QByteArray) -> isize;
50        #[rust_name = "remove_i32_QByteArray"]
51        fn qhashRemove(_: &mut QHash_i32_QByteArray, key: &i32) -> bool;
52    }
53}
54
55pub(crate) fn clone(hash: &ffi::QHash_i32_QByteArray) -> ffi::QHash_i32_QByteArray {
56    ffi::qhash_clone_i32_QByteArray(hash)
57}
58
59pub(crate) fn default() -> ffi::QHash_i32_QByteArray {
60    ffi::qhash_default_i32_QByteArray()
61}
62
63pub(crate) fn drop(hash: &mut ffi::QHash_i32_QByteArray) {
64    ffi::qhash_drop_i32_QByteArray(hash);
65}
66
67pub(crate) fn get_or_default(hash: &ffi::QHash_i32_QByteArray, key: &i32) -> ffi::QByteArray {
68    ffi::get_or_default_i32_QByteArray(hash, key)
69}
70
71pub(crate) unsafe fn get_unchecked_key(hash: &ffi::QHash_i32_QByteArray, pos: isize) -> &i32 {
72    ffi::get_unchecked_key_i32_QByteArray(hash, pos)
73}
74
75pub(crate) unsafe fn get_unchecked_value(
76    hash: &ffi::QHash_i32_QByteArray,
77    pos: isize,
78) -> &ffi::QByteArray {
79    ffi::get_unchecked_value_i32_QByteArray(hash, pos)
80}
81
82pub(crate) fn insert(hash: &mut ffi::QHash_i32_QByteArray, key: &i32, value: &ffi::QByteArray) {
83    ffi::insert_i32_QByteArray(hash, key, value);
84}
85
86pub(crate) fn len(hash: &ffi::QHash_i32_QByteArray) -> isize {
87    ffi::len_i32_QByteArray(hash)
88}
89
90pub(crate) fn remove(hash: &mut ffi::QHash_i32_QByteArray, key: &i32) -> bool {
91    ffi::remove_i32_QByteArray(hash, key)
92}
93
94#[allow(non_camel_case_types)]
95pub struct QHashPair_i32_QByteArray;
96
97unsafe impl ExternType for QHashPair_i32_QByteArray {
98    type Id = type_id!("QHashPair_i32_QByteArray");
99    type Kind = cxx::kind::Trivial;
100}