gio/auto/
icon.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    #[doc(alias = "GIcon")]
10    pub struct Icon(Interface<ffi::GIcon, ffi::GIconIface>);
11
12    match fn {
13        type_ => || ffi::g_icon_get_type(),
14    }
15}
16
17impl Icon {
18    pub const NONE: Option<&'static Icon> = None;
19
20    #[doc(alias = "g_icon_deserialize")]
21    pub fn deserialize(value: &glib::Variant) -> Option<Icon> {
22        unsafe { from_glib_full(ffi::g_icon_deserialize(value.to_glib_none().0)) }
23    }
24
25    #[doc(alias = "g_icon_new_for_string")]
26    #[doc(alias = "new_for_string")]
27    pub fn for_string(str: &str) -> Result<Icon, glib::Error> {
28        unsafe {
29            let mut error = std::ptr::null_mut();
30            let ret = ffi::g_icon_new_for_string(str.to_glib_none().0, &mut error);
31            if error.is_null() {
32                Ok(from_glib_full(ret))
33            } else {
34                Err(from_glib_full(error))
35            }
36        }
37    }
38}
39
40pub trait IconExt: IsA<Icon> + 'static {
41    #[doc(alias = "g_icon_equal")]
42    fn equal(&self, icon2: Option<&impl IsA<Icon>>) -> bool {
43        unsafe {
44            from_glib(ffi::g_icon_equal(
45                self.as_ref().to_glib_none().0,
46                icon2.map(|p| p.as_ref()).to_glib_none().0,
47            ))
48        }
49    }
50
51    #[doc(alias = "g_icon_hash")]
52    fn hash(&self) -> u32 {
53        unsafe {
54            ffi::g_icon_hash(
55                ToGlibPtr::<*mut ffi::GIcon>::to_glib_none(self.as_ref()).0
56                    as glib::ffi::gconstpointer,
57            )
58        }
59    }
60
61    #[doc(alias = "g_icon_serialize")]
62    fn serialize(&self) -> Option<glib::Variant> {
63        unsafe { from_glib_full(ffi::g_icon_serialize(self.as_ref().to_glib_none().0)) }
64    }
65
66    #[doc(alias = "g_icon_to_string")]
67    fn to_string(&self) -> Option<glib::GString> {
68        unsafe { from_glib_full(ffi::g_icon_to_string(self.as_ref().to_glib_none().0)) }
69    }
70}
71
72impl<O: IsA<Icon>> IconExt for O {}