1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use super::*;
// wxVariantData
wxwidgets! {
/// The wxVariantData class is used to implement a new type for wxVariant.
/// - [`VariantData`] represents a C++ `wxVariantData` class instance which your code has ownership, [`VariantDataIsOwned`]`<false>` represents one which don't own.
/// - Use [`VariantData`]'s `new()` to create an instance of this class.
/// - See [C++ `wxVariantData` class's documentation](https://docs.wxwidgets.org/3.2/classwx_variant_data.html) for more details.
#[doc(alias = "wxVariantData")]
#[doc(alias = "VariantData")]
class VariantData
= VariantDataIsOwned<true>(wxVariantData) impl
VariantDataMethods,
ObjectRefDataMethods
}
impl<const OWNED: bool> VariantDataIsOwned<OWNED> {
// BLOCKED: fn wxVariantData()
pub fn none() -> Option<&'static Self> {
None
}
}
impl Clone for VariantDataIsOwned<false> {
fn clone(&self) -> Self {
Self(self.0)
}
}
impl<const OWNED: bool> From<VariantDataIsOwned<OWNED>> for ObjectRefDataIsOwned<OWNED> {
fn from(o: VariantDataIsOwned<OWNED>) -> Self {
unsafe { Self::from_ptr(o.as_ptr()) }
}
}
impl<const OWNED: bool> Drop for VariantDataIsOwned<OWNED> {
fn drop(&mut self) {
if OWNED {
unsafe { ffi::wxVariantData_delete(self.0) }
}
}
}