cxx_qt_lib/core/qvariant/
qvariant_u16.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/qvariant.h");
10        type QVariant = crate::QVariant;
11    }
12
13    #[namespace = "rust::cxxqtlib1::qvariant"]
14    unsafe extern "C++" {
15        #[rust_name = "can_convert_u16"]
16        fn qvariantCanConvertU16(variant: &QVariant) -> bool;
17        #[rust_name = "construct_u16"]
18        fn qvariantConstruct(value: &u16) -> QVariant;
19        #[rust_name = "value_or_default_u16"]
20        fn qvariantValueOrDefault(variant: &QVariant) -> u16;
21    }
22}
23
24pub(crate) fn can_convert(variant: &ffi::QVariant) -> bool {
25    ffi::can_convert_u16(variant)
26}
27
28pub(crate) fn construct(value: &u16) -> ffi::QVariant {
29    ffi::construct_u16(value)
30}
31
32pub(crate) fn value_or_default(variant: &ffi::QVariant) -> u16 {
33    ffi::value_or_default_u16(variant)
34}