glib/auto/
key_file.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, translate::*, Bytes, Error, KeyFileFlags};
6
7crate::wrapper! {
8    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
9    pub struct KeyFile(Shared<ffi::GKeyFile>);
10
11    match fn {
12        ref => |ptr| ffi::g_key_file_ref(ptr),
13        unref => |ptr| ffi::g_key_file_unref(ptr),
14        type_ => || ffi::g_key_file_get_type(),
15    }
16}
17
18impl KeyFile {
19    #[doc(alias = "g_key_file_new")]
20    pub fn new() -> KeyFile {
21        unsafe { from_glib_full(ffi::g_key_file_new()) }
22    }
23
24    #[doc(alias = "g_key_file_get_comment")]
25    #[doc(alias = "get_comment")]
26    pub fn comment(
27        &self,
28        group_name: Option<&str>,
29        key: Option<&str>,
30    ) -> Result<crate::GString, crate::Error> {
31        unsafe {
32            let mut error = std::ptr::null_mut();
33            let ret = ffi::g_key_file_get_comment(
34                self.to_glib_none().0,
35                group_name.to_glib_none().0,
36                key.to_glib_none().0,
37                &mut error,
38            );
39            if error.is_null() {
40                Ok(from_glib_full(ret))
41            } else {
42                Err(from_glib_full(error))
43            }
44        }
45    }
46
47    #[doc(alias = "g_key_file_get_double")]
48    #[doc(alias = "get_double")]
49    pub fn double(&self, group_name: &str, key: &str) -> Result<f64, crate::Error> {
50        unsafe {
51            let mut error = std::ptr::null_mut();
52            let ret = ffi::g_key_file_get_double(
53                self.to_glib_none().0,
54                group_name.to_glib_none().0,
55                key.to_glib_none().0,
56                &mut error,
57            );
58            if error.is_null() {
59                Ok(ret)
60            } else {
61                Err(from_glib_full(error))
62            }
63        }
64    }
65
66    #[doc(alias = "g_key_file_get_double_list")]
67    #[doc(alias = "get_double_list")]
68    pub fn double_list(&self, group_name: &str, key: &str) -> Result<Vec<f64>, crate::Error> {
69        unsafe {
70            let mut length = std::mem::MaybeUninit::uninit();
71            let mut error = std::ptr::null_mut();
72            let ret = ffi::g_key_file_get_double_list(
73                self.to_glib_none().0,
74                group_name.to_glib_none().0,
75                key.to_glib_none().0,
76                length.as_mut_ptr(),
77                &mut error,
78            );
79            if error.is_null() {
80                Ok(FromGlibContainer::from_glib_container_num(
81                    ret,
82                    length.assume_init() as _,
83                ))
84            } else {
85                Err(from_glib_full(error))
86            }
87        }
88    }
89
90    #[doc(alias = "g_key_file_get_int64")]
91    #[doc(alias = "get_int64")]
92    pub fn int64(&self, group_name: &str, key: &str) -> Result<i64, crate::Error> {
93        unsafe {
94            let mut error = std::ptr::null_mut();
95            let ret = ffi::g_key_file_get_int64(
96                self.to_glib_none().0,
97                group_name.to_glib_none().0,
98                key.to_glib_none().0,
99                &mut error,
100            );
101            if error.is_null() {
102                Ok(ret)
103            } else {
104                Err(from_glib_full(error))
105            }
106        }
107    }
108
109    #[doc(alias = "g_key_file_get_integer")]
110    #[doc(alias = "get_integer")]
111    pub fn integer(&self, group_name: &str, key: &str) -> Result<i32, crate::Error> {
112        unsafe {
113            let mut error = std::ptr::null_mut();
114            let ret = ffi::g_key_file_get_integer(
115                self.to_glib_none().0,
116                group_name.to_glib_none().0,
117                key.to_glib_none().0,
118                &mut error,
119            );
120            if error.is_null() {
121                Ok(ret)
122            } else {
123                Err(from_glib_full(error))
124            }
125        }
126    }
127
128    #[doc(alias = "g_key_file_get_integer_list")]
129    #[doc(alias = "get_integer_list")]
130    pub fn integer_list(&self, group_name: &str, key: &str) -> Result<Vec<i32>, crate::Error> {
131        unsafe {
132            let mut length = std::mem::MaybeUninit::uninit();
133            let mut error = std::ptr::null_mut();
134            let ret = ffi::g_key_file_get_integer_list(
135                self.to_glib_none().0,
136                group_name.to_glib_none().0,
137                key.to_glib_none().0,
138                length.as_mut_ptr(),
139                &mut error,
140            );
141            if error.is_null() {
142                Ok(FromGlibContainer::from_glib_container_num(
143                    ret,
144                    length.assume_init() as _,
145                ))
146            } else {
147                Err(from_glib_full(error))
148            }
149        }
150    }
151
152    #[doc(alias = "g_key_file_get_locale_for_key")]
153    #[doc(alias = "get_locale_for_key")]
154    pub fn locale_for_key(
155        &self,
156        group_name: &str,
157        key: &str,
158        locale: Option<&str>,
159    ) -> Option<crate::GString> {
160        unsafe {
161            from_glib_full(ffi::g_key_file_get_locale_for_key(
162                self.to_glib_none().0,
163                group_name.to_glib_none().0,
164                key.to_glib_none().0,
165                locale.to_glib_none().0,
166            ))
167        }
168    }
169
170    #[doc(alias = "g_key_file_get_start_group")]
171    #[doc(alias = "get_start_group")]
172    pub fn start_group(&self) -> Option<crate::GString> {
173        unsafe { from_glib_full(ffi::g_key_file_get_start_group(self.to_glib_none().0)) }
174    }
175
176    #[doc(alias = "g_key_file_get_uint64")]
177    #[doc(alias = "get_uint64")]
178    pub fn uint64(&self, group_name: &str, key: &str) -> Result<u64, crate::Error> {
179        unsafe {
180            let mut error = std::ptr::null_mut();
181            let ret = ffi::g_key_file_get_uint64(
182                self.to_glib_none().0,
183                group_name.to_glib_none().0,
184                key.to_glib_none().0,
185                &mut error,
186            );
187            if error.is_null() {
188                Ok(ret)
189            } else {
190                Err(from_glib_full(error))
191            }
192        }
193    }
194
195    #[doc(alias = "g_key_file_get_value")]
196    #[doc(alias = "get_value")]
197    pub fn value(&self, group_name: &str, key: &str) -> Result<crate::GString, crate::Error> {
198        unsafe {
199            let mut error = std::ptr::null_mut();
200            let ret = ffi::g_key_file_get_value(
201                self.to_glib_none().0,
202                group_name.to_glib_none().0,
203                key.to_glib_none().0,
204                &mut error,
205            );
206            if error.is_null() {
207                Ok(from_glib_full(ret))
208            } else {
209                Err(from_glib_full(error))
210            }
211        }
212    }
213
214    #[doc(alias = "g_key_file_has_group")]
215    pub fn has_group(&self, group_name: &str) -> bool {
216        unsafe {
217            from_glib(ffi::g_key_file_has_group(
218                self.to_glib_none().0,
219                group_name.to_glib_none().0,
220            ))
221        }
222    }
223
224    #[doc(alias = "g_key_file_load_from_bytes")]
225    pub fn load_from_bytes(&self, bytes: &Bytes, flags: KeyFileFlags) -> Result<(), crate::Error> {
226        unsafe {
227            let mut error = std::ptr::null_mut();
228            let is_ok = ffi::g_key_file_load_from_bytes(
229                self.to_glib_none().0,
230                bytes.to_glib_none().0,
231                flags.into_glib(),
232                &mut error,
233            );
234            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
235            if error.is_null() {
236                Ok(())
237            } else {
238                Err(from_glib_full(error))
239            }
240        }
241    }
242
243    #[doc(alias = "g_key_file_load_from_data")]
244    pub fn load_from_data(&self, data: &str, flags: KeyFileFlags) -> Result<(), crate::Error> {
245        let length = data.len() as _;
246        unsafe {
247            let mut error = std::ptr::null_mut();
248            let is_ok = ffi::g_key_file_load_from_data(
249                self.to_glib_none().0,
250                data.to_glib_none().0,
251                length,
252                flags.into_glib(),
253                &mut error,
254            );
255            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
256            if error.is_null() {
257                Ok(())
258            } else {
259                Err(from_glib_full(error))
260            }
261        }
262    }
263
264    #[doc(alias = "g_key_file_load_from_file")]
265    pub fn load_from_file(
266        &self,
267        file: impl AsRef<std::path::Path>,
268        flags: KeyFileFlags,
269    ) -> Result<(), crate::Error> {
270        unsafe {
271            let mut error = std::ptr::null_mut();
272            let is_ok = ffi::g_key_file_load_from_file(
273                self.to_glib_none().0,
274                file.as_ref().to_glib_none().0,
275                flags.into_glib(),
276                &mut error,
277            );
278            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
279            if error.is_null() {
280                Ok(())
281            } else {
282                Err(from_glib_full(error))
283            }
284        }
285    }
286
287    #[doc(alias = "g_key_file_remove_comment")]
288    pub fn remove_comment(
289        &self,
290        group_name: Option<&str>,
291        key: Option<&str>,
292    ) -> Result<(), crate::Error> {
293        unsafe {
294            let mut error = std::ptr::null_mut();
295            let is_ok = ffi::g_key_file_remove_comment(
296                self.to_glib_none().0,
297                group_name.to_glib_none().0,
298                key.to_glib_none().0,
299                &mut error,
300            );
301            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
302            if error.is_null() {
303                Ok(())
304            } else {
305                Err(from_glib_full(error))
306            }
307        }
308    }
309
310    #[doc(alias = "g_key_file_remove_group")]
311    pub fn remove_group(&self, group_name: &str) -> Result<(), crate::Error> {
312        unsafe {
313            let mut error = std::ptr::null_mut();
314            let is_ok = ffi::g_key_file_remove_group(
315                self.to_glib_none().0,
316                group_name.to_glib_none().0,
317                &mut error,
318            );
319            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
320            if error.is_null() {
321                Ok(())
322            } else {
323                Err(from_glib_full(error))
324            }
325        }
326    }
327
328    #[doc(alias = "g_key_file_remove_key")]
329    pub fn remove_key(&self, group_name: &str, key: &str) -> Result<(), crate::Error> {
330        unsafe {
331            let mut error = std::ptr::null_mut();
332            let is_ok = ffi::g_key_file_remove_key(
333                self.to_glib_none().0,
334                group_name.to_glib_none().0,
335                key.to_glib_none().0,
336                &mut error,
337            );
338            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
339            if error.is_null() {
340                Ok(())
341            } else {
342                Err(from_glib_full(error))
343            }
344        }
345    }
346
347    #[doc(alias = "g_key_file_set_boolean")]
348    pub fn set_boolean(&self, group_name: &str, key: &str, value: bool) {
349        unsafe {
350            ffi::g_key_file_set_boolean(
351                self.to_glib_none().0,
352                group_name.to_glib_none().0,
353                key.to_glib_none().0,
354                value.into_glib(),
355            );
356        }
357    }
358
359    //#[doc(alias = "g_key_file_set_boolean_list")]
360    //pub fn set_boolean_list(&self, group_name: &str, key: &str, list: /*Unimplemented*/&CArray TypeId { ns_id: 0, id: 1 }) {
361    //    unsafe { TODO: call ffi:g_key_file_set_boolean_list() }
362    //}
363
364    #[doc(alias = "g_key_file_set_comment")]
365    pub fn set_comment(
366        &self,
367        group_name: Option<&str>,
368        key: Option<&str>,
369        comment: &str,
370    ) -> Result<(), crate::Error> {
371        unsafe {
372            let mut error = std::ptr::null_mut();
373            let is_ok = ffi::g_key_file_set_comment(
374                self.to_glib_none().0,
375                group_name.to_glib_none().0,
376                key.to_glib_none().0,
377                comment.to_glib_none().0,
378                &mut error,
379            );
380            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
381            if error.is_null() {
382                Ok(())
383            } else {
384                Err(from_glib_full(error))
385            }
386        }
387    }
388
389    #[doc(alias = "g_key_file_set_double")]
390    pub fn set_double(&self, group_name: &str, key: &str, value: f64) {
391        unsafe {
392            ffi::g_key_file_set_double(
393                self.to_glib_none().0,
394                group_name.to_glib_none().0,
395                key.to_glib_none().0,
396                value,
397            );
398        }
399    }
400
401    #[doc(alias = "g_key_file_set_int64")]
402    pub fn set_int64(&self, group_name: &str, key: &str, value: i64) {
403        unsafe {
404            ffi::g_key_file_set_int64(
405                self.to_glib_none().0,
406                group_name.to_glib_none().0,
407                key.to_glib_none().0,
408                value,
409            );
410        }
411    }
412
413    #[doc(alias = "g_key_file_set_integer")]
414    pub fn set_integer(&self, group_name: &str, key: &str, value: i32) {
415        unsafe {
416            ffi::g_key_file_set_integer(
417                self.to_glib_none().0,
418                group_name.to_glib_none().0,
419                key.to_glib_none().0,
420                value,
421            );
422        }
423    }
424
425    #[doc(alias = "g_key_file_set_list_separator")]
426    pub fn set_list_separator(&self, separator: crate::Char) {
427        unsafe {
428            ffi::g_key_file_set_list_separator(self.to_glib_none().0, separator.into_glib());
429        }
430    }
431
432    #[doc(alias = "g_key_file_set_locale_string")]
433    pub fn set_locale_string(&self, group_name: &str, key: &str, locale: &str, string: &str) {
434        unsafe {
435            ffi::g_key_file_set_locale_string(
436                self.to_glib_none().0,
437                group_name.to_glib_none().0,
438                key.to_glib_none().0,
439                locale.to_glib_none().0,
440                string.to_glib_none().0,
441            );
442        }
443    }
444
445    #[doc(alias = "g_key_file_set_string")]
446    pub fn set_string(&self, group_name: &str, key: &str, string: &str) {
447        unsafe {
448            ffi::g_key_file_set_string(
449                self.to_glib_none().0,
450                group_name.to_glib_none().0,
451                key.to_glib_none().0,
452                string.to_glib_none().0,
453            );
454        }
455    }
456
457    #[doc(alias = "g_key_file_set_uint64")]
458    pub fn set_uint64(&self, group_name: &str, key: &str, value: u64) {
459        unsafe {
460            ffi::g_key_file_set_uint64(
461                self.to_glib_none().0,
462                group_name.to_glib_none().0,
463                key.to_glib_none().0,
464                value,
465            );
466        }
467    }
468
469    #[doc(alias = "g_key_file_set_value")]
470    pub fn set_value(&self, group_name: &str, key: &str, value: &str) {
471        unsafe {
472            ffi::g_key_file_set_value(
473                self.to_glib_none().0,
474                group_name.to_glib_none().0,
475                key.to_glib_none().0,
476                value.to_glib_none().0,
477            );
478        }
479    }
480}
481
482impl Default for KeyFile {
483    fn default() -> Self {
484        Self::new()
485    }
486}