glib/gobject/
type_module.rs1use crate::{
4 enums::{EnumValues, FlagsValues},
5 gobject_ffi,
6 prelude::*,
7 translate::*,
8 InterfaceInfo, TypeFlags, TypeInfo, TypePlugin,
9};
10
11crate::wrapper! {
12 #[doc(alias = "GTypeModule")]
13 pub struct TypeModule(Object<gobject_ffi::GTypeModule, gobject_ffi::GTypeModuleClass>) @implements TypePlugin;
14
15 match fn {
16 type_ => || gobject_ffi::g_type_module_get_type(),
17 }
18}
19
20impl TypeModule {
21 pub const NONE: Option<&'static TypeModule> = None;
22}
23
24pub trait TypeModuleExt: IsA<TypeModule> + 'static {
25 #[doc(alias = "g_type_module_add_interface")]
26 fn add_interface(
27 &self,
28 instance_type: crate::types::Type,
29 interface_type: crate::types::Type,
30 interface_info: &InterfaceInfo,
31 ) {
32 unsafe {
33 gobject_ffi::g_type_module_add_interface(
34 self.as_ref().to_glib_none().0,
35 instance_type.into_glib(),
36 interface_type.into_glib(),
37 interface_info.as_ptr(),
38 );
39 }
40 }
41
42 #[doc(alias = "g_type_module_register_enum")]
43 fn register_enum(
44 &self,
45 name: &str,
46 const_static_values: &'static EnumValues,
47 ) -> crate::types::Type {
48 unsafe {
49 from_glib(gobject_ffi::g_type_module_register_enum(
50 self.as_ref().to_glib_none().0,
51 name.to_glib_none().0,
52 const_static_values.to_glib_none().0,
53 ))
54 }
55 }
56
57 #[doc(alias = "g_type_module_register_flags")]
58 fn register_flags(
59 &self,
60 name: &str,
61 const_static_values: &'static FlagsValues,
62 ) -> crate::types::Type {
63 unsafe {
64 from_glib(gobject_ffi::g_type_module_register_flags(
65 self.as_ref().to_glib_none().0,
66 name.to_glib_none().0,
67 const_static_values.to_glib_none().0,
68 ))
69 }
70 }
71
72 #[doc(alias = "g_type_module_register_type")]
73 fn register_type(
74 &self,
75 parent_type: crate::types::Type,
76 type_name: &str,
77 type_info: &TypeInfo,
78 flags: TypeFlags,
79 ) -> crate::types::Type {
80 unsafe {
81 from_glib(gobject_ffi::g_type_module_register_type(
82 self.as_ref().to_glib_none().0,
83 parent_type.into_glib(),
84 type_name.to_glib_none().0,
85 type_info.as_ptr(),
86 flags.into_glib(),
87 ))
88 }
89 }
90
91 #[doc(alias = "g_type_module_set_name")]
92 fn set_name(&self, name: &str) {
93 unsafe {
94 gobject_ffi::g_type_module_set_name(
95 self.as_ref().to_glib_none().0,
96 name.to_glib_none().0,
97 );
98 }
99 }
100
101 #[doc(alias = "g_type_module_unuse")]
102 fn unuse(&self) {
103 unsafe {
104 gobject_ffi::g_type_module_unuse(self.as_ref().to_glib_none().0);
105 }
106 }
107
108 #[doc(alias = "g_type_module_use")]
109 #[doc(alias = "use")]
110 fn use_(&self) -> bool {
111 unsafe {
112 from_glib(gobject_ffi::g_type_module_use(
113 self.as_ref().to_glib_none().0,
114 ))
115 }
116 }
117}
118
119impl<O: IsA<TypeModule>> TypeModuleExt for O {}