cxx_qt_lib/core/qvector/
qvector_bool.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
6#[cxx::bridge]
7pub mod ffi {
8    unsafe extern "C++" {
9        include!("cxx-qt-lib/qvector.h");
10        type QVector_bool = crate::QVector<bool>;
11    }
12
13    unsafe extern "C++" {
14        #[rust_name = "cxx_clear"]
15        fn clear(self: &mut QVector_bool);
16        #[rust_name = "cxx_contains"]
17        fn contains(self: &QVector_bool, _: &bool) -> bool;
18    }
19
20    #[namespace = "rust::cxxqtlib1"]
21    unsafe extern "C++" {
22        include!("cxx-qt-lib/common.h");
23
24        #[rust_name = "qvector_clone_bool"]
25        fn construct(_: &QVector_bool) -> QVector_bool;
26        #[rust_name = "qvector_default_bool"]
27        fn construct() -> QVector_bool;
28        #[rust_name = "qvector_drop_bool"]
29        fn drop(_: &mut QVector_bool);
30    }
31
32    #[namespace = "rust::cxxqtlib1::qvector"]
33    unsafe extern "C++" {
34        #[rust_name = "reserve_bool"]
35        fn qvectorReserve(_: &mut QVector_bool, size: isize);
36        #[rust_name = "append_bool"]
37        fn qvectorAppend(_: &mut QVector_bool, _: &bool);
38        #[rust_name = "get_unchecked_bool"]
39        #[allow(clippy::needless_lifetimes)]
40        unsafe fn qvectorGetUnchecked<'a>(set: &'a QVector_bool, pos: isize) -> &'a bool;
41        #[rust_name = "index_of_bool"]
42        fn qvectorIndexOf(_: &QVector_bool, _: &bool) -> isize;
43        #[rust_name = "insert_bool"]
44        fn qvectorInsert(_: &mut QVector_bool, _: isize, _: &bool);
45        #[rust_name = "len_bool"]
46        fn qvectorLen(_: &QVector_bool) -> isize;
47        #[rust_name = "remove_bool"]
48        fn qvectorRemove(_: &mut QVector_bool, _: isize);
49    }
50}
51
52pub(crate) fn append(v: &mut ffi::QVector_bool, value: &bool) {
53    ffi::append_bool(v, value);
54}
55
56pub(crate) fn clone(v: &ffi::QVector_bool) -> ffi::QVector_bool {
57    ffi::qvector_clone_bool(v)
58}
59
60pub(crate) fn reserve(v: &mut ffi::QVector_bool, size: isize) {
61    ffi::reserve_bool(v, size);
62}
63
64pub(crate) fn default() -> ffi::QVector_bool {
65    ffi::qvector_default_bool()
66}
67
68pub(crate) fn drop(v: &mut ffi::QVector_bool) {
69    ffi::qvector_drop_bool(v);
70}
71
72pub(crate) unsafe fn get_unchecked(v: &ffi::QVector_bool, pos: isize) -> &bool {
73    ffi::get_unchecked_bool(v, pos)
74}
75
76pub(crate) fn index_of(v: &ffi::QVector_bool, value: &bool) -> isize {
77    ffi::index_of_bool(v, value)
78}
79
80pub(crate) fn insert(v: &mut ffi::QVector_bool, pos: isize, value: &bool) {
81    ffi::insert_bool(v, pos, value);
82}
83
84pub(crate) fn len(v: &ffi::QVector_bool) -> isize {
85    ffi::len_bool(v)
86}
87
88pub(crate) fn remove(s: &mut ffi::QVector_bool, pos: isize) {
89    ffi::remove_bool(s, pos);
90}