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
39
40
41
42
43
44
45
46
47
48
49
// Take a look at the license at the top of the repository in the LICENSE file.

use crate::ContentFormats;
use glib::translate::*;

impl ContentFormats {
    /// Gets the `GType`s included in `self`.
    ///
    /// Note that `self` may not contain any `GType`s, in particular when
    /// they are empty. In that case [`None`] will be returned.
    ///
    /// # Returns
    ///
    ///
    ///  `G_TYPE_INVALID`-terminated array of types included in `self`
    #[doc(alias = "gdk_content_formats_get_gtypes")]
    #[doc(alias = "get_gtypes")]
    pub fn types(&self) -> Vec<glib::Type> {
        unsafe {
            let mut n_types = std::mem::MaybeUninit::uninit();
            let types =
                ffi::gdk_content_formats_get_gtypes(self.to_glib_none().0, n_types.as_mut_ptr());

            FromGlibContainer::from_glib_none_num(types, n_types.assume_init() as usize)
        }
    }

    /// Gets the mime types included in `self`.
    ///
    /// Note that `self` may not contain any mime types, in particular
    /// when they are empty. In that case [`None`] will be returned.
    ///
    /// # Returns
    ///
    ///
    ///  [`None`]-terminated array of interned strings of mime types included
    ///  in `self`
    #[doc(alias = "gdk_content_formats_get_mime_types")]
    pub fn mime_types(&self) -> Vec<glib::GString> {
        unsafe {
            let mut n_mime_types = std::mem::MaybeUninit::uninit();
            let mime_types = ffi::gdk_content_formats_get_mime_types(
                self.to_glib_none().0,
                n_mime_types.as_mut_ptr(),
            );
            FromGlibContainer::from_glib_none_num(mime_types, n_mime_types.assume_init() as usize)
        }
    }
}