2
2
3
3
use std:: { fmt, marker:: PhantomData , ptr} ;
4
4
5
- use glib:: { translate:: * , Type } ;
5
+ use glib:: { translate:: * , GString , IntoGStr , Type } ;
6
6
7
7
use crate :: IOExtension ;
8
8
9
9
// rustdoc-stripper-ignore-next
10
10
/// Builder for extension points.
11
11
#[ derive( Debug ) ]
12
12
#[ must_use = "The builder must be built to be used" ]
13
- pub struct IOExtensionPointBuilder < ' a > {
14
- name : & ' a str ,
13
+ pub struct IOExtensionPointBuilder {
14
+ name : GString ,
15
15
required_type : Option < Type > ,
16
16
}
17
17
18
- impl < ' a > IOExtensionPointBuilder < ' a > {
19
- fn new ( name : & ' a str ) -> Self {
18
+ impl IOExtensionPointBuilder {
19
+ fn new ( name : GString ) -> Self {
20
20
Self {
21
21
name,
22
22
required_type : None ,
@@ -80,16 +80,16 @@ impl IOExtensionPoint {
80
80
// rustdoc-stripper-ignore-next
81
81
/// Create a new builder for an extension point.
82
82
#[ doc( alias = "g_io_extension_point_register" ) ]
83
- pub fn builder ( name : & str ) -> IOExtensionPointBuilder {
84
- IOExtensionPointBuilder :: new ( name)
83
+ pub fn builder ( name : impl Into < GString > ) -> IOExtensionPointBuilder {
84
+ IOExtensionPointBuilder :: new ( name. into ( ) )
85
85
}
86
86
87
87
#[ doc( alias = "g_io_extension_point_lookup" ) ]
88
- pub fn lookup ( name : & str ) -> Option < Self > {
89
- unsafe {
88
+ pub fn lookup ( name : impl IntoGStr ) -> Option < Self > {
89
+ name . run_with_gstr ( |name| unsafe {
90
90
let ep = ffi:: g_io_extension_point_lookup ( name. to_glib_none ( ) . 0 ) ;
91
91
from_glib_none ( ep)
92
- }
92
+ } )
93
93
}
94
94
95
95
#[ doc( alias = "g_io_extension_point_get_extensions" ) ]
@@ -107,14 +107,14 @@ impl IOExtensionPoint {
107
107
}
108
108
109
109
#[ doc( alias = "g_io_extension_point_get_extension_by_name" ) ]
110
- pub fn extension_by_name ( & self , name : & str ) -> Option < IOExtension > {
111
- unsafe {
110
+ pub fn extension_by_name ( & self , name : impl IntoGStr ) -> Option < IOExtension > {
111
+ name . run_with_gstr ( |name| unsafe {
112
112
let e = ffi:: g_io_extension_point_get_extension_by_name (
113
113
self . 0 . as_ptr ( ) ,
114
114
name. to_glib_none ( ) . 0 ,
115
115
) ;
116
116
from_glib_none ( e)
117
- }
117
+ } )
118
118
}
119
119
120
120
#[ doc( alias = "g_io_extension_point_get_required_type" ) ]
@@ -124,20 +124,22 @@ impl IOExtensionPoint {
124
124
125
125
#[ doc( alias = "g_io_extension_point_implement" ) ]
126
126
pub fn implement (
127
- extension_point_name : & str ,
127
+ extension_point_name : impl IntoGStr ,
128
128
type_ : Type ,
129
- extension_name : & str ,
129
+ extension_name : impl IntoGStr ,
130
130
priority : i32 ,
131
131
) -> Option < IOExtension > {
132
- unsafe {
133
- let e = ffi:: g_io_extension_point_implement (
134
- extension_point_name. to_glib_none ( ) . 0 ,
135
- type_. into_glib ( ) ,
136
- extension_name. to_glib_none ( ) . 0 ,
137
- priority,
138
- ) ;
139
- from_glib_none ( e)
140
- }
132
+ extension_point_name. run_with_gstr ( |extension_point_name| {
133
+ extension_name. run_with_gstr ( |extension_name| unsafe {
134
+ let e = ffi:: g_io_extension_point_implement (
135
+ extension_point_name. to_glib_none ( ) . 0 ,
136
+ type_. into_glib ( ) ,
137
+ extension_name. to_glib_none ( ) . 0 ,
138
+ priority,
139
+ ) ;
140
+ from_glib_none ( e)
141
+ } )
142
+ } )
141
143
}
142
144
}
143
145
0 commit comments