wxrust_base/generated/
class_v.rs

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